linux c编程一站式学习 笔记...
时间:2010-08-09
来源:foolloow
关于程序的讨论里提到了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) |
热门阅读
- office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
- 如何安装mysql8.0
阅读:31
- Word快速设置标题样式步骤详解
阅读:28
- 20+道必知必会的Vue面试题(附答案解析)
阅读:37
- HTML如何制作表单
阅读:22
- 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
- ET文件格式和XLS格式文件之间如何转化?
阅读:24
- react和vue的区别及优缺点是什么
阅读:121
- 支付宝人脸识别如何关闭?
阅读:21
- 腾讯微云怎么修改照片或视频备份路径?
阅读:28