我对 c 编译器感到困惑。据我所知,对于程序员来说,代码并不重要,但内部行为非常重要。因为如果我们知道编译器对特定代码的行为,那么我们可以轻松编写程序。但我非常喜欢 linux。我的系统是 linux 平台,到现在我都没有使用过 windows,因为我讨厌 windows 操作系统。我不知道 turbo C 的行为如何。
在我的 Linux 系统中,我有 gcc 版本 4.8.2(Ubuntu 4.8.2-19ubuntu1)。但我在一个网站上学习到,我们不应该直接使用 main(),我们应该使用int 主要()就像那样。但是我的编译器在编译下面的代码时没有错误。
#include <stdio.h>
main() { /* ... */ }
我要参加面试,所以我必须遵循哪个编译器来建议我?我对 C 语言一头雾水。我想知道linux内核是基于哪个编译器编写的?
答案1
$ gcc -Wall -pedantic -o hw hw-no-return.c hw-no-return.c:1:1:警告:ISO C90 不允许使用 C++ 样式注释 [默认启用] // ‘Hello World!’ 程序 ^ hw-no-return.c:1:1: 警告:(每个输入文件仅报告一次)[默认启用] hw-no-return.c:5:1:警告:返回类型默认为“int”[-Wreturn-type] 主要的() ^ hw-no-return.c:在函数‘main’中: hw-no-return.c:9:1:警告:控制到达非 void 函数的末尾 [-Wreturn-type] } ^ $ cat hw-no-return.c // ‘Hello World!’ 程序 #包括 <stdio.h> 主要的() { printf(“你好,世界!\n”); } $ gcc -o hw hw-no-return.c $ ./hw 你好世界! $