1,编译器设计者的金科玉律:效率.
编译器的效率:
(1)编译时效率(产生可执行代码的速度)
(2)运行时效率(可执行代码运行的速度)
2,刚开始,C语言的客户主要是编译器设计者.
因此,C语言的许多特性是为了方便编译器设计者而设定的.
(1)数组的下标从0开始.
(2)C语言的基本数据类型与底层语言相关联.
(3)auto关键字,摆设.
缺省的变量内存分配模式:"进入程序块时,自动分配内存"(对应于全局静态分配或堆上动态分配)
(4)不允许嵌套函数.
3,K&R C:1978年,The C Programming Language出版,作者:Brian Kernighan和Dennis Ritchie.
C语言的演化之路: 早期的C(1972-3)-->K&R C(1976-9)-->ANSI C(1983-9)
ANSI:美国国家标准化组织.
4,一些术语:
不可移植的代码
(1)由编译器设计者决定采用何种行为.如:整数右移时,符号位的扩展.
(2)未确定的.如:参数求值的顺序.
坏代码:
(1)未定义的,不正确的做法,但标准没有规定应该怎样做.如:有符号整数溢出时,采取什么行动.
(2)约束条件:必须遵循的限制或要求.
标准规定:编译器只有在违反语法规则和约束条件的情况下才产生出错信息.
意味着:不违反约束条件的语法规则可以不遵循.
例如:可以声明一个malloc()函数.
可移植的代码:
一个严格遵循标准的程序,应该是:
(1)只使用已经确定的特性.
(2)不产生任何依赖由编译器定义的或未确定的或未定义的特性的输出.
5,关于数值类型的转换:
(1)当执行算术运算时,如果数值类型不同,就会发生转换.
(2)数据类型一般朝着精度更高,长度更长的方向转换.
(3)整型数如果转换为signed不会丢失信息,就优先转换为signed,否则转换为unsigned.
6,给定下面的程序的:
#include<stdio.h>
int data[]={1,2,3};
#define SN (sizeof(data)/sizeof(data[0]))
int main()
{
int d=-1;
printf("%d\n",d<SN); //bug:if语句测试时,d被升级为unsigned类型.
printf("%d\n",d<(int)SN);
return 0;
}
建议:
(1)尽量不要在代码中使用无符号类型.不要因为无符号不存在负数,就用来表示数量.
(2)只有在使用位段和二进制掩码时,才使用无符号类型.
(3)在表达式中使用强制类型转换,使操作数均为signed或unsigned.
分享到:
相关推荐
红领巾广播稿:穿越时空走进开国大典.pdf
1. 数组下标从0开始,因为偏移量的概念 2. C的基本数据类型直接与硬件底层相对应 3. auto关键字显然是摆设:它只对创建符号表入口的编译器设计者有意义,
资本回报:穿越资本周期的投资 一个资产管理人的报告
js穿越时空隧道特效,梦幻炫酷效果,前端必看! js穿越时空隧道特效,梦幻炫酷效果,前端必看! js穿越时空隧道特效,梦幻炫酷效果,前端必看! js穿越时空隧道特效,梦幻炫酷效果,前端必看! js穿越时空隧道特效,...
数学建模:穿越沙漠.ppt
这是一款高成本、高体量、高质量的 3D 游戏: - 【A / D】操控警察猫左右移动; -【W】操控跳跃; - 按住鼠标按钮瞄准四周,然后释放射击!如果你在不接触地面的时候这样做,你就会朝着相反的方向发射!(当你瞄准...
FOF配置金融产品专题报告之二:穿越牛熊的阿尔法,市场中性策略(22页).pdf
43个高清时空穿越背景视频,1920*1080规格,可以用于开场视频,对于游戏开发来说,可以代替粒子特效
20210618-中原证券-通信行业半年度策略:穿越周期,拥抱成长.pdf
20210407-中信建投-保险行业2020年报综述:穿越低谷迎转机.pdf
中国经济与华西商业地产未来研判:穿越周期,展望2025.pdf
20210202-光大证券-保险行业2021年投资策略:穿越周期,静待花开.pdf
国内劵商报告
数学建模国赛优秀论文集锦-2020B:穿越沙漠游戏最佳策略模型的研究与构建
数学建模国赛优秀论文集锦-2020B:穿越沙漠游戏下玩家的最优策略模型
│ 第*课***_580.doc│ 第*课:***.pdf│ 第*课:***.sb3│├─第*课:***教学步骤│ 第1步 ***.mp4│ 第2步 ***.mp4│ 第3步 ***.mp4│ 第4步 ***.mp4│ 第5步 ***.mp4│ 第6步 ***.mp4│ 第7步 ***.pdf│ 第7步 **...
动力电池系列报告(一):穿越2020,动力电池需求到底有多大?.pdf
房地产2019年度策略:穿越周期的迷雾
电力设备及新能源行业:动力电池系列报告(一):穿越2020,动力电池需求到底有多大?.pdf