首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mac gcc编译器不能识别c11

Mac gcc编译器不能识别c11
EN

Stack Overflow用户
提问于 2021-08-13 05:00:58
回答 1查看 24关注 0票数 0

我正在尝试运行这段简单的代码

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

 int main(){
     hello();
 }

 void hello(){
     printf("Hello");
 }

使用

代码语言:javascript
复制
gcc -std=gnu11  main.c

在Mac上没有成功。我得到了

代码语言:javascript
复制
 error: implicit declaration of function 'hello' is invalid in C99 

这是我的gcc版

代码语言:javascript
复制
% gcc -v
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

你能帮我理解一下这里发生了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-13 05:11:17

error: implicit declaration of function 'hello' is invalid in C99

在调用函数之前声明或定义函数,例如

代码语言:javascript
复制
#include <stdio.h>
 void hello(){
     printf("Hello");
 }

 int main(){
     hello();
 }

编辑:尽管诊断显示为C99 (我从未为此而烦恼过,但也许这只是一个小错误?)可以通过检查应设置为201112L__STDC_VERSION__宏来检查C11支持。这可以像这样检查:

代码语言:javascript
复制
#if (__STDC_VERSION__<201112L)
#error C11 support needed
#endif

或者(如果_Static_assert可用)

代码语言:javascript
复制
_Static_assert(__STDC_VERSION__>=201112L, "C11 or higher needed");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68767004

复制
相关文章

相似问题

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