从学习C语言开始就一直写个一个函数,那么你知道它的标准写法什么什么样吗?
main函数,又称主函数,是程序执行的起点,我们平时写的main函数是什么样呢?
1,是这样?
main(){}
2,还是这样?
void main(){}
3,还是这样?
int main(void){}
4,还是这样?
int main(){}
5,还是这样?
int main(int argc,char *argv[]){}
上面这么多种写法,那么哪种才是正确的写法呢?
查阅C89/C99/C11标准文档,里面明确固定了两种写法:
int main(void) { /* 。。。。。。 */ }int main(int argc, char *argv[]) { /* 。。。。。。 */ }
所以说,其他的写法并不符合标准,有些算是历史遗留有些算是编译器的扩展,还有些不知道从哪里生出来的。
所以说了这么多,为了代码的通用可移植性,建议采用标准提供的形式,还是推荐使用标准文档中规定的这两种写法。如果一个函数确定无需传入任何参数,那么用void限定是一个不错的选择。
所以说,你明白要怎么写main函数了吗?
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关文章
汇编和C语言相结合的51单片机编程技巧(2023-06-25)
部分需要做如此处理。
PUBLIC DELAY
DELAY SEGMENT CODE
RSEG DELAY
DELAY:
MOV R2,#250
DJNZ R2,$
RET
END
2:C语言中......
如何基于Keil、STM32用C++编写流水灯程序?(2023-10-20)
extern “C” {#endif
//这里C源代码
#ifdef __cplusplus}#endif
什么意思呢?
这是一段预处理,从预处理代码可以看得出来,大概意思就是:支持C和C++混合......
s3c2440代码重定位和段的引入——学以致用,综合Makefile的锻炼(2023-09-25)
不能像内存一样写,执行写操作需要特殊的操作。
程序中包含有需要写的全局或者静态变量,它们在bin文件中,写在nor flash上,直接修改这样的变量是无效的。
到底什么意思呢?还是......
Keil MDK中enum类型数据大小的问题(2023-12-18)
使用枚举来定义诸如命令等字段。这时有个问题就必须要提出了,C语言中类型到底占多少字节?我们给命令字段预留的字节大小必须和类型大小一致才能保证通信协议在字节流层面上正确。 关于类型究竟占用多少字节,答案是不确定。C语言......
我也玩单片机:流水灯(2024-08-19)
位变量”的说明性语句,并不产生指令代码;而在汇编中setb是一条真正的“指令”(意思就是set bit),在汇编中与C中sbit相对应的说明性语句是bit。下面是2种语言中等价的语句:
C语言
汇编......
单片机c语言教程第十三章--C51循环语句(2023-05-10)
语句, 无非就是一条空语句重复执行 1000 次,因此我们就能用循环语句去写,这样不但使程序
结构清晰明了,而且使其编译的效率大大的提高。在 C 语言中构成循环控制的语句有 while,do-while......
一文解析STM32启动流程(2024-02-03)
-data:Read Only data,只读数据域,它指程序中用到的只读数据,这些数据被存储在 ROM 区,因而程序不能修改其内容。C语言中 const 关键字定义的变量就是典型的 RO-data......
STM32启动文件简介、详细步骤及代码讲解(2023-05-23)
文件中重新定义的中断服务程序名称必须保持一致。
IMPORT:表示该标号来自外部文件,跟C语言中的关键字EXTERN类似。这里表示Systemlnit 和main 这两......
使用寄存器点亮LED—STM32的寄存器映射代码讲解(2023-02-15)
达到稳定运行的状态。其实这个函数在固件库里面有提供,官方已经为我们写好。
__main 其实不是我们定义的(不要与C 语言中的main 函数混淆),这是一个C 库函数,当编译器编译时,只要......
C51编程经验汇总分享(2023-04-06)
不了热启动的要求。这是为什么呢?原来,用C语言编程时,开机时执 行的代码并非是从main()函数的第一语句开始的,在main()函数的第一语句执行前要先执行一段‘起始代码’。正是这段代码执行了内存清零的工作。 C......