《Pointers On C》读书笔记(第二章 基本概念)
1.从源代码到生成可执行程序的过程整体上可以分为两个阶段:编译和链接。其中,编译过程大致上又可分为:预处理、编译和汇编。预处理阶段主要对源代码中的预处理指令(包含宏定义指令<如 #define>、条件编译指令<如#ifdef,#ifndef,#else,#elif,#endif等>和头文件包含指令<如#include>)及某些特殊符号(如LINE、FILE等)进行处理。编译阶段主要对预处理后的代码进行词法和语法分析,产生绝大多数错误和警告信息,并生成目标(中间)代码;同时,还会根据用户提供的选项对生成的目标(中间)代码进行优化。汇编阶段主要将编译阶段生成的代码转换成目标机器指令。链接过程主要由链接器将各个目标文件、标准库函数和其它相关文件合并起来,生成一个单一而完整的可执行程序。
2.我们通常所说的空白字符包括空格、水平制表符、垂直制表符、格式反馈字符和换行符。
3.所有的注释都会被预处理器拿掉,取而代之的是一个空格。因此,注释可以出现于任何空格可以出现的地方。
4.标识符由字母、数字和下划线组成,但不能以数字开头。同时,标识符是大小写敏感的。关键字由系统保留,不能作为标识符使用。另外,标识符的长度没有限制,但标准允许编译器忽略第31个字符以后的字符。标准同时允许编译器对用于表示外部名字(亦由链接器操控的名字)的标识符进行限制,只识别前6位不区分大小写的字符。
5.不良的编程风格和不良的文档是软件生产和维护代码高昂的两个重要原因。良好的编程风格能够大大提高程序的可读性。良好的编程风格的直接结果就是程序更易正确运行,间接结果是它们更容易维护,节省大笔资金成本。
《Pointers On C》读书笔记(第二章 基本概念)的更多相关文章
- 《C和指针》读书笔记——第二章 基本概念
1.编译过程: source code→Compiler→Object code→Linker←Lib ↓ Exe 2.经过初始化的静态变量(static)在程序执行前能获得他们的值. 3.绝大多数环 ...
- 《时间序列分析及应用:R语言》读书笔记--第二章 基本概念
本章介绍时间序列中的基本概念.特别地,介绍随机过程.均值.方差.协方差函数.平稳过程和自相关函数等概念. 2.1时间序列与随机过程 关于随机过程的定义,本科上过相关课程,用的是<应用随机过程&g ...
- 深入理解 C 指针阅读笔记 -- 第二章
Chapter2.h #ifndef __CHAPTER_2_ #define __CHAPTER_2_ /*<深入理解C指针>学习笔记 -- 第二章*/ /* 内存泄露的两种形式 1.忘 ...
- STL源码分析读书笔记--第二章--空间配置器(allocator)
声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...
- 《C++ Primer》读书笔记—第二章 变量和基本类型
声明: 文中内容收集整理自<C++ Primer 中文版 (第5版)>,版权归原书所有. 学习一门程序设计语言最好的方法就是练习编程. 1.8比特的char类型计算机表示的实际范围是-12 ...
- Getting Started With Hazelcast 读书笔记(第二章、第三章)
第二章 起步 本章就相当简单粗暴了,用一个个例子说明hazelcast怎么用. 1.map,set,list这些集合类都是开箱即用的,只要从Hazelcast的实例中获取一份就行. 2.增加了Mult ...
- Java Concurrency in Practice 读书笔记 第二章
第二章的思维导图(代码迟点补上):
- Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)
前言:工作之后一直在搞android,现在需要更多和后台的人员交涉,技术栈不一样,难免鸡同鸭讲,所以稍稍学习下. 这个例子取自于<Spring 3.x 企业应用开发实战>一书中的第二章,I ...
- javascript 数据结构和算法读书笔记 > 第二章 数组
这章主要讲解了数组的工作原理和其适用场景. 定义: 一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量. javascript数组的特殊之处: jav ...
随机推荐
- Highcharts使用手册
chart: { type: 'area', ignoreHiddenSeries: false, //如果true,一旦一个系列被隐藏,轴将会扩展剩余的可见系列 }, 这是设置的两个纵坐标轴: yA ...
- mysql函数操作(6)
<?php try{ $dbh = new PDO('mysql:dbname=testdb;host=localhost', 'mysql_user', 'mysql_pwd'); }catc ...
- SVN+post-commit 搭建自动同步版本库
一.需求. 本地文件上传到测试环境svn,测试环境同步到生产环境rsync.开发环境与测试环境与生产环境分离. 二.搭建SVN服务器. yum -y install subversion && ...
- struts2笔记03-ActionContext
1.概念 ActionContext是action的上下文,它包括action执行所需要的对象.struts2对每一个action都会创建一个新的ActionContext实例,同Action一样,是 ...
- Linux中的那些英文缩写和她的含义们
系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 打印工作路径. su:Swith user 切换用户,切换到roo ...
- isequal 和startswith 使用
如果要把不同服务器发送过来的日志保存到不同的文件, 可以这样操作: :fromhost-ip, isequal, "192.168.0.160″ /var/log/host160.log : ...
- js的replace的用法;
obj.replace("需要替换的字符串","替换后的字符串")
- padding-bottom布局解析;
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- saiku之固定维度(必选维度)
工作中遇到的问题,记录下来方便以后查找. 在saiku中如何设定固定维度? 找到WorkspaceDropZone.js文件,在synchronize_query: function(){}方法中的“ ...
- ZOJ 3829 Known Notation (2014牡丹江H称号)
主题链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=5383 Known Notation Time Limit: 2 S ...