首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C中使用_EXFUN ()

在C中使用_EXFUN ()
EN

Stack Overflow用户
提问于 2018-06-08 07:13:49
回答 2查看 642关注 0票数 -2

https://www.gnu.org/software/m68hc11/examples/stdio_8h-source.html

我想知道在使用C/C++时,上面的链接中_exfun ()是什么意思,它是做什么的?我看到了一个代码片段。下面是:

代码语言:javascript
运行
复制
#ifndef _EXFUN
  # define _EXFUN(N,P) N P
#endif

这段代码是做什么的?如果你解释一下,我会很高兴的。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-08 07:23:30

在C/C++中,任何以#开头的都是预编译器标志。这意味着在编译程序之前,程序会解析以#开头的行,并执行它们应该执行的任何操作。# if,#ifdef,#ifndef只要满足条件,就只在if块中包含代码,这意味着如果不满足条件,if中的代码就不会被编译。#define用于宏定义和简单文本替换。

似乎在您引用的代码中,如果宏尚未定义,则宏将被定义,以便宏定义下的代码将转换为有效的C语法。我认为,如果有人想让stdio函数做其他事情或以不同的方式定义,这可能会很有用。他们将在包含stdio.h之前实现defining_EXFUN。

票数 -1
EN

Stack Overflow用户

发布于 2018-06-08 07:23:30

我刚刚测试了它,它链接了两个语句。

代码语言:javascript
运行
复制
_EXFUN(printf("Hello, ");, printf("World!\n");)

显然,这是一种技巧,目的是根据_EXFUN在头文件中的实现方式,对相同的语句进行不同的预处理。它主要与声明有关。但是我不能给出它什么时候有用的例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档