私はこれを持っています:
#define VERSION_MAJOR 1
#define VERSION_MINOR 0
#define REVISION b
#define VERSION VERSION_MAJOR.VERSION_MINOR REVISION
#define _STRINGIFY(x) #x
#define STRINGIFY(x) _STRINGIFY(x)
integer version_major = VERSION_MAJOR;
integer version_minor = VERSION_MINOR;
string revision = STRINGIFY(REVISION);
string version_string = STRINGIFY(VERSION);
ただし、これは に設定version_string
され"1.0 b"
ます。VERSION_MINOR と REVISION の間のスペースを削除したい。私はこれを試しました:
#define VERSION VERSION_MAJOR.VERSION_MINOR##REVISION
しかし、それは生成し"1.VERSION_MINORREVISION"
ます。明らかに、これも機能しません:
#define VERSION VERSION_MAJOR.VERSION_MINORREVISION
間にスペースを入れずに 2 つのプリプロセッサ値を連結することは可能ですか?
更新:質問は言語ではなくプリプロセッサに関するものだったため、言語を変更しました。LSL で実際に必要だったのは、最初は C 構文を使用して質問を定式化したにもかかわらずです。これは、より多くのユーザーに馴染みのあるものですが、LSL では、文字列リテラルを隣接させてより長い文字列リテラルを形成することはできません。