【发布时间】:2021-09-13 16:02:44
【问题描述】:
为 hacky 程序打印文档的多产方式通常是:
void print_help(){
printf("a whole bunch of information
generally spanning many lines and looking ugly
requires editing a c file to modify documentation");
}
这是丑陋的 IMO,并且不容易修改文档。替代方案:
一般不屑一顾:
void print_help(){
printf("read the README, you idiot");
}
容易出错,复杂:
void print_help(){
fopen("readme.md", "r");
//error check;
while (read from file){
printf("%s", line);
}
}
我想弥补解决方案 1 和 3 之间的差距,即:
void print_help(){
printf("#include"help_file.txt"");
}
我想我的问题是:
- 真的这么简单吗?预处理器会跳过字符串,还是会注意到包含指令?
- 潜在问题?我知道任何不能很好地 printf 的东西如果放在文件中都会导致问题
【问题讨论】:
-
你试过编译吗?是的,你可以这样做像这样,但不能像你那样做。
-
预处理器指令必须位于行首(空格除外)。而且它们不会在字符串中处理。
-
@EugeneSh。我确实尝试过,但转义序列的任何排列都失败了。一个人会如何做这样的事情like?整个 printf 是否必须在文本文件中?
-
@KamilCuk 你没看错,但似乎最好的答案仍然在这个问题中
标签: c c-preprocessor