Linux C编程一站式学习 笔记

关于程序的讨论里提到了C语言的可移植,原本不知道为什么,现在知道,原来是因为各种平台上都有C语言的编译器,这就好像是一种由于广泛使用而成为规范的东西一样,当所有机器上都有你的编译器的时候,你的可移植性当然强了。

之前看v6shell的代码就没明白词法和语法有什么差别,这里讲到了词法就是单词(token)的规则,而语法是单词和结构的规则。而形式语言,这里的编程语言C语言是理所当然的形式语言,所以没有自然语言的那么多歧义,而是看字面意思。

程序里的错误分成:1编译时错误,一般是编译器发现的语法错误;2运行时错误,编译通过,但是实际运行时出错甚至程序崩溃;3逻辑错误和语义错误,也就是你想让程序完成的任务编写的代码虽然能够运行,但结果不是你想要的这类错误,需要头脑清晰的分析出错的地方。

例如printf(1);语句会产生警告信息,但编译还是能通过,在运行时会有segmentation fault错误,所以是运行时错误。有时编译器不提示一些不是很严重的警告,比如printf(0);当想看到这类警告时要用gcc -Wall选项。

由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal)。

表 2.1. C标准规定的转义字符

/'单引号'(Single Quote或Apostrophe)
/"双引号"
/?问号?(Question Mark)
//反斜线/(Backslash)
/a响铃(Alert或Bell)
/b退格(Backspace)
/f分页符(Form Feed)
/n换行(Line Feed)
/r回车(Carriage Return)
/t水平制表符(Horizontal Tab)
/v垂直制表符(Vertical Tab)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值