佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1396|回复: 4

C programming 一点点小混乱

[复制链接]
发表于 14-12-2008 12:35 PM | 显示全部楼层

回复 2# pic 的帖子

嘻嘻……清楚了,谢谢你!
回复

使用道具 举报


ADVERTISEMENT

发表于 14-12-2008 02:43 PM | 显示全部楼层
这个问题非常好。我本身也不知道完整的答案。不过大概大概知道。以前有问过老师。
main() , void main () 和 void main (void)

在embedded c(一部分) 里面, 这是没有分别的。如果你是写给embedded c(一部分),你会发觉到三个都是一样的。
未必所有embedded c compiler是ansi-c standard,所以embedded c compiler接受到的syntax未必是c standard.

如果你是写给microcontroller, pic大大的解释是对的。 我们永远不会从main 跳出来。所以三者是同样的。
不过如果你要你的code highly portable,你最好跟ansi-c standard走。选用int main (void)

*注:以下是for ur extra information,你可以选择不要读,可能会更blur.
以上三个main function在standard c里面没有一个是正确的。
对的是这个
int main ( void )
int main ( int argc, char *argv[])
c 里面main 一定要return int. 这个告诉电脑这个program execute correctly or not.

有些embedded c还是跟回c standard也就是以上那三个没有一个可以被compile。
我用过一些mcu的compiler(ansi-c standard), .
要用int main (void)才能成功compile.

参考
http://blog.chinaunix.net/u1/57911/showart_500967.html
http://users.aber.ac.uk/auj/voidmain.shtml
回复

使用道具 举报

 楼主| 发表于 14-12-2008 12:25 AM | 显示全部楼层 |阅读模式
请别怪我问那么简单的问题,真是不好意思。 想知道,到底 main() , void main () 和 void main (void) 有什么分别?谢谢!
回复

使用道具 举报

发表于 14-12-2008 07:43 AM | 显示全部楼层
原帖由 cincailo 于 14-12-2008 12:25 AM 发表
请别怪我问那么简单的问题,真是不好意思。 想知道,到底 main() , void main () 和 void main (void) 有什么分别?谢谢!

当我们看到void xxx(), 就知道这个function / sub routine 不会return value.
当我们看到xxx(void), 就知道这个function / sub routine 不会接受passing argument .


main() , void main () 和 void main (void)  都是一样的功能。

void main(), 是告诉compiler , main() 这个function 不会return 任何value。

void main(main), 是告诉compiler , main() 这个function 不会传回任何数字,
也没有任何input argument/ parameter。


eg:
int mymain()     是告诉compiler , mymain() 这个procedure/ function 会传回(return)int 的数字。
char mymain()     是告诉compiler , mymain() 这个procedure/ function 会传回(return)char 的字句。

int mymain(int x)     是告诉compiler , mymain() 这个procedure/ function 会传回(return)int 的数字,
还有输入的一个函数x是int type。



void main(),是最常的写法。

[ 本帖最后由 pic 于 14-12-2008 07:44 AM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 14-12-2008 11:58 PM | 显示全部楼层

回复 4# fritlizt 的帖子

谢谢你说我问得好。。。 起初还担心这个问题太简单。 原来是这样,大概明白,会再慢慢研究。 谢谢哦!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 31-12-2024 05:19 AM , Processed in 0.131727 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表