开发者社区> 问答> 正文

C语言这段预处理命令错在哪里?为什么编译器报错?

#define LINE_FILE ("Line"#__LINE__"of file"__FILE__)

int main(void)
{
    printf("%s", LINE_FILE);
}

如上的预处理命令,希望
LINE_FILE = "Line 行数 of file 文件名"
然而编译器报错,也不知道错在哪。。。
screenshot

展开
收起
a123456678 2016-06-08 14:13:41 2101 0
1 条回答
写回答
取消 提交回答
  • #define LINE_FILE ("Line # __LINE__ of file __FILE__")
    就算可以用也应该是这种格式啊! __LINE__ 和 __FILE__ 这个是define 会直接提换!
    
    补充:
    在c艹中:
    #define LINE_FILE std::cout<<"Line # " << __LINE__ << " of file "<<__FILE__<<std::endl;
    这个宏定义是可以用的!
    直接使用 : LINE_FILE
    
    #define LINE_FILE "Line # " << __LINE__ << " of file "<<__FILE__
    换成这样的话需要
    这样使用 : std::cout<< LINE_FILE <<std::endl;
    2019-07-17 19:31:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载