我试图编写一个宏,用gcc编译器为可执行文件添加注释。这不是用于链接目的,我只是想添加文本注释。为此目的,gcc中是否存在#pragma注释等效项?
答案 0 :(得分:7)
我不确定对于可执行文件添加注释"是什么意思。谁或将要消费,展示甚至注意到这些评论?不过,如果你只想确保某些字符串嵌入程序中的某个地方,那么只需在文件范围内将其声明为普通(C)字符串。
static const char my_comment[] = "This comment should appear in the compiled executable";
答案 1 :(得分:2)
如果您不希望将.data
部分(static const char[]
将要去的地方)与评论混为一谈,或者相反,希望从{{1}轻松找到评论你可以在那里添加一些内联汇编的注释:
.comment
Gcc还has __asm__(".section .comment\n\t"
".string \"Hello World\"\n\t"
".section .text");
指令将文本复制到适当的部分(如果可用)。在ELF的情况下,它将是.comment部分。即使该指令不是标准的,该解决方案也可能比前者更便携。
#ident
答案 2 :(得分:0)
#ident可能有用。但是有两个警告:
“#ident”指令采用一个参数,即字符串常量。一些 系统,则将该字符串常量复制到 目标文件。在其他系统上,该指令将被忽略。 “ #sccs” 指令是“ #ident”的同义词。
这些指令不是C标准的一部分,但它们不是 还是官方的GNU扩展。