完美C语言系列之《C语言程序设计现代方法》----第二章_c语言程序设计第二章笔记(2)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2.1 编写一个简单的C程序

2.1.1 编译和链接
  • 预处理:首先程序会被提交给预处理器。预处理器执行以#开头的指令(通常称为指令)。预处理器有点类似于编辑器,它可以给程序添加内容,也可以对程序进行修改(比如修改主函数的名字)。
  • 编译。修改后的程序现在可以进入编译器了。编译器会把程序翻译成机器指令(即目标代码)。然而,这样的程序还是不可以运行的。
  • 链接。再最后一个步骤中,链接器把由编译器产生的目标代码和所需的其他附加代码整合在一起,这样才最终产生了完全可执行的程序。这些附加代码包括程序中用到的库函数。
2.2.1指令

指令:我们把预处理器执行的命令称为指令。所有指令都是以字符#开始的。指令默认只占一行,每条指令的结尾没有分号或者其它特殊标记。

2.2.2函数

一个C程序可以包含多个函数,但是只有main()函数是必须有的,在执行程序时系统会自动调用main()函数。

return 0;的作用:

  1. 使main()函数终止(从而结束程序)。
  2. 指出main函数的返回值是0。

注意:如果main()函数的末尾没有return语句,程序仍然能终止。但是许多编译器会产生一条警告信息(因为函数应该返回一个整数却没有这么做)。

2.4.3赋值

当我们把一个包含小数点的常量赋值给float型变量时,最好在常量后面加一个字符f(代表float)。

2.7标识符

某些编译器把特定的标识符(如asm)视为附加关键字。属于标准库的标识符也是受限的。误用这些名字可能会导致编译或链接出错。以下划线开头的标识符也是受限的。

问与答

  1. 问:在某些C语言书中,main()函数的结尾使用的是exit(0)而不是return 0,二者是否一样呢?

答:当出现在main()函数中使,这两种语句使完全等价的,二者都终止程序执行,并且向操作系统返回0值。使用哪种语句完全依据个人喜好而定。
2. 问:如果main()函数末尾没有return语句会产生什么的后果?

答:return语句不是必须的;如果没有return语句,程序一样会终止。在C89中,返回给操作系统的值是未定义的。在C99中,如果main()函数声明中的返回类型是int,程序会向操作系统返回0;否则会返回一个不确定的值。
3. 问:编译器是完全移除注释还是用空格替换掉注释呢?

答:一些早期的编译器会删除每条注释中的所有字段,使得语句

a/**/b = 0;

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值