C,C++语言的基础技巧收集
来源:互联网 发布:网站域名转让 编辑:程序博客网 时间:2024/05/20 21:47
把看到的,碰到的先记录在这里
1. 整形定义的时候使用L,小写的l容易和1混淆。无符号的要加UL。
注释:对于一些应用比较重要,如定义下面一个宏,如果不加UL,就有可能发生溢出
#define SECOND_OF_YEAR (365*24*60*60)UL
2. 关于int和long型长度的定义: C语言标准规定,int长度不小于16bit,long型不小于32位,具体的实现取决于编译器的实现和具体硬件的实现。
注释:在嵌入式应用开发中,这个问题是一个陷阱,某些16位机就会将int规定为16bit而不是我们常见的32bit。甚至char型也是16bit。
3. 函数定义和声明:如果我们在调用一个函数的时候,没有采用extern来声明,对于函数的返回值,编译器会默认为int类型。很不幸的是如果你没有打开编译器对类型声明的严格检查,摔跤是难免的。
注释:如在a.c文件中定义了一个函数double add(double a,double b),在b.c中没有使用extern double add(double a,double b);来声明函数就直接调用,那么add默认返回的值将是int类型而不是期望的double类型。
4. 字符串字面值的链接技巧:对于很长的字符串,书写和阅读都不方便,可以采用下面的技巧
4.1 puts("第一行字符串"
"第二行字符串"
"第三行字符串");
连接的结果:"第一行字符串第二行字符串第三行字符串"
注释: 利用编译器字符串连接规则--两个相邻的仅由空格,制表符和换行符分开的字符串字面值,可以连接成一个新的字符串字面值。其间的空格,制表符和换行符会被忽略.
4.2 puts("第一行字符串/
第二行字符串/
第三行字符串");
注释: 这个方法不常用,利用程序的格式化特性--在一行的末尾加一个反斜线符号'/'可以将此行和下一行当作同一行处理。但是反斜线后面不能有任何字符,包括注释。而且下一个行的开始的空格也将被视为有效字符。
5. 有相同名称的局部变量和全局变量的时候,局部变量优先。
6. struct 和 class定义的区别:唯一的区别在于默认的访问级别,struct的成员默认是public,class的级别是private
7. pack的使用: 对于要在不同系统间进行通信的时候,而且通信传送的数据结构是struct类型,使用pack很有必要,以保证正确的填充.
- C,C++语言的基础技巧收集
- C语言基础、函数、技巧
- C/C++技巧收集
- C编程技巧收集
- linux 基础入门 C语言的宏定义技巧
- ******************** C语言的基础 ********************
- C语言的基础
- C语言试题 收集
- C语言的学习技巧
- 编写C语言的技巧
- C语言的使用技巧
- c语言的一些技巧
- c语言的一些技巧
- C语言的学习机技巧
- C语言中易犯的BUG收集
- 自己收集的c语言学习网站
- C语言中有用的宏收集
- 【C语言】【unix c】进程的基础
- C++多态性一些总结
- SQLServer 异构数据库之间数据的导入导出
- 用微软makecert.exe生成一个自签名的证书
- explicit一些用途
- 最常见VC++6.0编译错误信息集合
- C,C++语言的基础技巧收集
- 经典java转码程序同native2ascii.exe(转)经典java转码程序同native2ascii.exe(转)
- 转:XenoCode 2006(可编译为无需 .net Framework)
- dynamic_cast 的一些用途
- 开博了,高兴
- POS打印机控制
- 怎样用Realview MDK生成bin文件?
- 新的PC助手
- const的一些总结