2023-12-14

1.1.操作过程

输入如下代码,然后选择菜单“File”下的“Save”子菜单保存,或者简单使用“<Ctrl>+S”快捷键。

图中黄色字样标出各部分信息,代码文件保存之后先编译代码。

命令“clang ce0101.c”指定需要编译的文件“ce0101.c”,没有特别指定的话,都将生成“a.exe”可执行文件。

命令“.\a.exe”运行程序,该程序功能很简单,就只是输出一个字符串“Hello, World!\n”。字符串是一个顺序字符集合,可以遍历其单个元素,也可拆分或拼接处理。

输入命令时可以敲键盘上的上下方向键(“↑”、“↓”)来加载历史记录。

1.2.说明

所有的C程序文件都采用“.c”扩展名,每个文件为一个单元。

需要注意的是,Windows环境的文件名不区分大小写,只是习惯地用小写的“.c”扩展名,换成大写不影响运行结果。

井号“#”开头的语句是C语言的预处理语句,在代码真正编译之前生效。上面的“#include”语句是将头文件“stdio.h”包含进来,实际上就是把“stdio.h”的内容直接添加到“ce0101.c”中,然后对合并后的代码(自动生成)进行编译。

“main”函数是可独立运行的C程序的入口,是程序启动时候一开始执行的位置。函数是一个可以多次调用的语句块,而语句块是由一个多个的语句组成的,语句块由左花括号“{” 标志开始,由右花括号“}”标志结束。

C程序是由一个或多个的语句或语句块组成的,语句之间以分号隔开“;”。一行代码可以容纳多个语句,一个语句也可以拆分成多行编写,但为了提高代码可读性的原则,最好还是一行一个语句。

“printf”也是一个函数,它的作用是输出字符串(格式输出)。

函数可以有返回值,本例中的“main”函数返回0,调用的是“return 0;”语句。

1.3.头文件

C语言头文件一般采用“.h”扩展名,但这并不是硬性规定,实际上“.c”、“.x”甚至没有扩展名的头文件也是允许的。

我们把上面的程序稍微修改一下,把“#include <stdio.h>”语句移到“ce0101”(没有扩展名)文件里,然后在“ce0101.c”文件里包含“ce0101”文件,编译运行的结果没有区别。

“ce0101”文件内容:

本例中也可以看出“#include”语句的原理就是把文件内容添加进来,如果被添加的内容又包含了“#include”语句,就需要嵌套添加,以此类推。

1.4.库函数

“printf”是C语言的一个标准库函数,所谓的标准库就是C语言标准要求编译器厂商必须实现的函数组成的函数库。标准库的库函数和头文件是配套的,前面我们看到的“stdio.h”就是标准库里面的一个头文件。这种头文件在用“#include”语句包含的时候,文件名以左尖括号“<”标志开始,以右尖括号“>”标志结束。

前文我们自己定义的头文件“ce0101”以双引号“"”标志开始和结束。

“printf”是一个标准输出(stdout)函数,标准输出函数一般指向屏幕输出,后面还会用到标准输出(stdin)函数,标准输入函数一般指向键盘输入。

库函数的种类非常多,需要在日常实践中积累经验。

1.5.函数返回值

一般函数的返回值可以在调用之后获取,“main”函数的返回值,“PowerShell”提供相应的接口可以获取并显示出来。

命令“$proc = Start-Process .\a.exe –Wait

-PassThru”可以运行“a.exe”程序,把运行的状态结果保存在“$proc”变量,其中就包含“$proc.ExitCode”这个分量,就是“main”函数的返回值。命名“echo”显示之后的变量值,功能类似前文的“printf”库函数。

在运行程序之后,可能希望知道程序运行的结果,这时候就需要“main”函数来返回一个数值。一般地,如果程序运行正常,“main”函数返回0,否则就返回一个非零值。

各位可以把本例中的“return”语句返回值修改一下,然后按照上面的方法执行看看结果会不会有所不同。

1.6.可能出现的错误

如果编译器配置不正确,可能会出现下面的错误:

有可能是环境变量配置问题,运行“$Env:PATH”命令查看:

检查相关文件是否复制到指定的目录:

还要强调一下中文问题,文件、文件夹名称是否是中文,代码里面使用的各种符号(“#”、“{”、“}”等等)是不是全角符号(中文),还有拼写是否正确(经常有人将“main”拼成“mian”)都会引起各种各样的错误。

遇到错误不要慌张,仔细查看错误信息,根据信息推断存在错误的原因,仔细核对每一个步骤是否正确无误,是确保程序正常运行的不二法宝。

同时,遇到错误之后解决问题,积少成多都会成为之后学习工作的宝贵经验。第一个程序涵盖的信息量还是很多的,其实还有一部分没细讲,先消化吸收这些之后再慢慢加大分量。不一定要求一下子全搞明白,多多练习就能孰能生巧。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • Linux性能调优技术概览 概述 这里的Linux性能调优主要是关于Linux系统上程序的性能跟踪,因为只有收集到...
    疾风2018阅读 158评论 0 1
  • 专注力:化繁为简的惊人力量 如果你喜欢多样性且直觉很准,你喜欢迎接新的挑战但又讨厌陷入旧路 人们需要的是创造力、灵...
    生命中的3天阅读 55评论 0 0
  • 从简单场景“入门”,走进工业互联网 工业互联网(Industrial Internet...
    蓝卓云阅读 43评论 0 0
  • 轰炸机[hōng zhà jī] 轰炸机是军用飞机之一,除了投常规炸弹外,它还能投掷核弹、核巡航导弹或发射空对地导...
    3298d817da64阅读 64评论 0 3
  • 今天到公司比较早,把新买的鼠标垫子带来,直接就开始收拾起来,弄完就9:10了,桌子上一下子就井井有条了,各种线根根...
    逗b爱吃逗b豆儿阅读 19评论 0 0