Cプリプロセッサを使用して'dintを'd文字列#define
に連結する方法を理解しようとしています。私のコンパイラはCentOS5のGCC4.1です。このソリューションはMinGWでも機能するはずです。#define
文字列にバージョン番号を追加したいのですが、それを機能させる唯一の方法は、文字列として定義されているバージョン番号のコピーを作成することです。
#define
私が見つけた最も近いものは、マクロ引数を引用する方法でしたが、それはsでは機能しません
これは機能しません。
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
#
値が数値であり、に展開されるため、sがないと機能しません。"/home/user/.myapp" 2 6
これは、有効なCではありません。
これは機能しますが、バージョン定義のコピーを持っているのは好きではありません。数字としても必要だからです。
#define MAJOR_VER 2
#define MINOR_VER 6
#define MAJOR_VER_STR "2"
#define MINOR_VER_STR "6"
#define MY_FILE "/home/user/.myapp" MAJOR_VER_STRING MINOR_VER_STRING