codecamp

C语言 程序结构

在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考。

C Hello W3Cschool 实例

C 程序主要包括以下部分:

  • 预处理器指令
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释

让我们看一段简单的代码,可以输出单词 "​Hello W3Cschool!​":

#include <stdio.h>

int main()
{
   /* 我的第一个 C 程序 */
   printf("Hello, W3Cschool! \n");
   
   return 0;
}

接下来我们讲解一下上面这段程序:

  1. 程序的第一行 #include <stdio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含​ stdio.h​ 文件。
  2. 下一行 int main() 是主函数,程序从这里开始执行。
  3. 下一行​ /*...*/​ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。
  4. 下一行 printf(...) 是 C 中另一个可用的函数,会在屏幕上显示消息 "​Hello, W3Cschool!​"。
  5. 下一行 return 0; 终止 ​main()​ 函数,并返回值 ​0​。

编译 & 执行 C 程序

接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。下面是简单的步骤:

  1. 打开一个文本编辑器,添加上述代码。
  2. 保存文件为 hello.c
  3. 打开命令提示符,进入到保存文件所在的目录。
  4. 键入 gcc hello.c,输入回车,编译代码。
  5. 如果代码中没有错误,命令提示符会跳到下一行,并生成 a.out ​(linux操作系统中可执行文件。
  6. 现在,键入 a.out 来执行程序。
  7. 您可以看到屏幕上显示 "​Hello W3Cschool​"
$ gcc hello.c
$ ./a.out
Hello, W3Cschool!

请确保您的路径中已包含 gcc 编译器,并确保在包含源文件 ​hello.c​ 的目录中运行它。

如果是多个 c 代码的源文件,编译如下:

$ gcc test1.c test2.c -o main.out
$ ./main.out

在Windows上编译

使用mingw进行编译的,可以参考mingw代码编译

对于初学者而言,最好的解决方案是直接安装集成开发环境(IDE),C/C++的集成开发环境有很多,其中比较出名的是Visual studio(微软出品,在Windows上如鱼得水,著名的Visual C++6.0,就是visual studio的一部分),codeblock(使用mingw作为编译器,也可使用微软的MSVC)和Dev-C++(一款简单但适合初学者的IDE)。这些集成开发环境提供了编译,链接等功能,还提供了debug的功能(还有很多功能,这里不一一细说了)。这些对于开发而言都是相当重要的。以编译为例,VS2019(visual studio)提供了一个运行的按钮,点击直接就可以一步编译运行源代码。


在之前的版本中和codeblock中,提供了更加详细的编译工具栏:

在VC6.0中:

如何在VC6.0中编译生成Release版本程序

含有编译,连接,运行,debug等多个功能。

在codeblock中也有单独的编译、运行的功能。

使用这些ide编译运行的方法大同小异,在写好代码后点击编译,编译成功会在下方的构建信息显示0 error(s), 0 warning(s) 。通常出现warning说明代码中有不合理的地方,但不影响编译,可以运行(单元线结果可能会有偏差),出现error代表代码出现错误,无法通过编译,不能运行。编译成功后就可以运行代码了。


C语言 环境设置
C语言 基本语法
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }