
int main(void)
{
printf("%s", LINE_FILE);
}
如上的预处理命令,希望然而编译器报错,也不知道错在哪。。。
LINE_FILE = "Line 行数 of file 文件名"
然而编译器报错,也不知道错在哪。。。
http://ww2.sinaimg.cn/large/005FchG6gw1esazxa0fenj30he06jjt7.jpg
1 rundis OP |
2 Kristd 2015-05-20 22:24:27 +08:00 是__FILE__和__LINE__吗 |
3 ytimex 2015-05-20 22:24:51 +08:00 感觉是#define |
4 VirgilMing 2015-05-20 23:00:21 +08:00 你最好把整个代码用 Markdown 的代码块包起来。现在这个没法看。 |
6 rundis OP <pre> #define LINEFILE ("Line"#LINE"of file"FILE_) int main(void) { printf("%s", LINE_FILE); } </pre> 重打一遍。。。 |
7 rundis OP @rundis 无视掉<pre>标签。。。另外宏少了下划线,原文是有的,宏叫做LINE_FILE而不是LINEFILE。。。 |
8 clapse 2015-05-21 17:12:59 +08:00 #define LINE_FILE(LINE,FILE) \ printf("Line %s of file %s",#LINE,#FILE) int main(void) { LINE_FILE(21,"TEST"); return 0; } |
10 clapse 2015-05-22 10:42:35 +08:00 @rundis ,抱歉,昨天读题能力被封印了 #include <stdio.h> using namespace std; #define LINETOSTR(LINE) #LINE #define FILETOSTR(FILE) #FILE #define LINE_FILE_PRINT(LINE,FILE) \ printf("Line %s of file %s",LINETOSTR(LINE),FILETOSTR(FILE)) #define LINE_FILE LINE_FILE_PRINT(__LINE__,__FILE__) int main(void) { LINE_FILE; return 0; } |