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; } |