免責事項:私はプログラマではありません。プリプロセッサを使用してコードを文字列に変換する
私は最近友人のプロジェクトを見ました。私が理解できない理由のために、彼は実行時にコンパイルされた文字列にコードを書きます。このようなものになり:Visual Studioがでステップと一部のプリプロセッサの虐待を使用するなど
構文強調表示を行いませんので、使用して恐ろしいです
char x[] = "int y = 5; printf(\"%i\", y)";
run_this_code(x);
、にトリックのVisual Studioを行うことが可能です実際のコードを書いていると思って、コンパイラがあなたのソースを取得する前にプリプロセッサを文字列に変換させることを考えています。これは動作します:
#define STRINGIFY(x) #x
int main(void){
char[] y = STRINGIFY(
int x = 5;
printf("%i", x);
);
printf("%s", y);
}
これに伴う問題は、それが出力している:
int x = 5; printf("%i\n", x);
問題は、ランタイムコンパイラでは、1行目のエラーは、それが改行を含ませる方法があると言いますか?
更新これは私の問題ではありません。他の誰かのコードですが、私はちょうど彼の人生をより簡単にするためにプリプロセッサを使用するという考えに関心を持っていました。なぜ私は彼がこれをやっているのか分かりません。
更新は、この質問がCUDAではなくプリプロセッサに関するものであるため、CUDAのすべての言及を削除しました。
これは機能しませんか? char x [] = "int x = 5; \ n printf(\"%i \ "、x)"; – fazo
私がしたいことの目的は、文字列に書かれたコードを構文の強調表示、「インテリセンス」などにトリックすることです。 –
何をしようとしていますか?あなたがGPUから標準出力に物事を印刷しようとしているのであれば、あなたは正しい軌道にいるとは思わない... – Marm0t