首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getchar是否定义为宏?

getchar是否定义为宏?
EN

Stack Overflow用户
提问于 2017-11-28 17:37:50
回答 5查看 492关注 0票数 0

我在K&R的第90页上读到,getchar通常被定义为宏。

那么,为什么这段代码真的可以工作:

代码语言:javascript
复制
#include <stdio.h>

#undef getchar

int main()
{
    char c;
    c= getchar();
    printf("%c\n",c);

    return 0;
}
EN

Stack Overflow用户

发布于 2017-11-28 17:40:14

不,C标准将getchar()定义为一个函数。请参阅C11,第7.21.7.6章,getchar函数。它是在<stdio.h>头文件中原型化的。

任何实现,如果选择将其定义为宏,则仅限于该实现。需要注意的是,这不是不符合项。来自第7.1.4章(重点是我的)

在标头中声明的任何函数都可以作为在标头

中定义的类似函数的宏额外实现

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

https://stackoverflow.com/questions/47528190

复制
相关文章

相似问题

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