关于gcc编译器中函数不用进行原型声明的解释
2016-11-01 09:38
375 查看
经过大量实验和参考网上的说法得出一个结论:
gcc编译器中,函数可以不用提前进行原型声明,编译器会把函数调用同时认为是声明。
需要注意的是,由于函数调用的时候并没有写明函数返回值,这是gcc把调用当成声明来用,会默认返回值为int。
所以,函数返回值为int类型的函数,在gcc编译器中是可以不用提前进行函数原型声明的。
但是!!!为了安全起见和适应不同标准的编译器,强烈建议进行原型声明啊!!!
gcc这一点做的很不地道。如果换个编译器会发现错误。
gcc编译器中,函数可以不用提前进行原型声明,编译器会把函数调用同时认为是声明。
需要注意的是,由于函数调用的时候并没有写明函数返回值,这是gcc把调用当成声明来用,会默认返回值为int。
所以,函数返回值为int类型的函数,在gcc编译器中是可以不用提前进行函数原型声明的。
但是!!!为了安全起见和适应不同标准的编译器,强烈建议进行原型声明啊!!!
gcc这一点做的很不地道。如果换个编译器会发现错误。
相关文章推荐
- 关于warning: function declaration isn’t a prototype(函数声明不是原型)的解决办法
- 关于gcc内置函数和c隐式函数声明的认识以及一些推测
- C代码在GCC编译器下不需要函数前置声明
- 关于c++中函数原型声明的小讨论
- 关于C++对函数传参与函数返回值进行引用传递的详解
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- gcc不链接不用函数的方法
- [原创] 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 转:关于GCC中同时使用动态和静态库链接的操作参数和解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 关于GCC下使用内建的多媒体指令集(MMX、SSE)函数
- Linux系统平台下关于GCC编译及使用的方法(-Werror,它要求GCC将所有的警告当成错误进行处理 )
- [转载]LCC编译器的源程序分析(16)函数的声明
- C++中,函数声明时指针、引用相关的语义,定义方法原型时参考。
- Vim编译器配合ctags实现函数原型快速定位方法介绍
- 关于EeePc的Linux下安装GCC编译器
- LCC编译器的源程序分析(16)函数的声明
- LCC编译器的源程序分析(16)函数的声明
- 关于strcpy的问题,解释一下为什么VS中标准的方法不用memcpy实现
- gcc的 printf 和 缓冲区的问题(关于fflush 函数)