易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++ 笔记(零碎点)

1)a = a + 5; 与 a += 5;的区别。
    二者在广义上是等价。D.Ritchie 在C语言中引入复合运算符的主要目的是为了提高编译的效率以产生高质量的执行代码。因为这些运算符的功能基本上都能用一二条机器指令来完成。
2)在C++中long 与 int 的区别
NameDescriptionSize*Range*
char
Character or small integer.
1byte
signed: -128 to 127
unsigned: 0 to 255
short int
(short)
Short Integer.
2bytes
signed: -32768 to 32767
unsigned: 0 to 65535
int
Integer.
4bytes
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
long int
(long)
Long integer.
4bytes
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
bool
Boolean value. It can take one of two values: true or false.
1byte
true or false
float
Floating point number.
4bytes
+/- 3.4e +/- 38 (~7 digits)
double
Double precision floating point number.
8bytes
+/- 1.7e +/- 308 (~15 digits)
long double
Long double precision floating point number.
8bytes
+/- 1.7e +/- 308 (~15 digits)
wchar_t
Wide character.
2 or 4 bytes
1 wide character
 因此在这里可以看出long与int是没有区别的。
但是,在印象中long与int还是有区别的,应该是在表示的范围内有差别,这是为什么?
拜拜Google大神之后得到一个比较满意的结果:
integer 分long integer 和 short integer 两种,视不同的编译器,单单integer 表示不同的数据类型。
在tc 里int 默认为两个字节,范围在-32768~32767;而在vc里默认为4 个字节,范围在-2147483648~2147483647.
long 总是表示4 个字节的数据。
3)struct对象的大小计算:
struct address
{
char* name;
long int number;
char* street;
char* town;
char state[2];
long zip;
};

结构类型对象的大小未必是其成员的大小之和,这是因为很多机器要求将确定类型的对象分配在某种与机器的系统相关的边界上,或者是在采用适当分配的要求下能更有效的处理这些对象。
union和struct类型的大小计算:
对于union,对齐的大小是最大的基本元素的对齐大小,对象的大小必须是该基本元素大小的整数倍。
如:
Union U1
{
     char a[9];
  


相关文档:

Delphi 与 C/C++ 数据类型对照表

Delphi 与 C/C++ 数据类型对照表
Delphi数据类型C/C++
ShorInt
8位有符号整数
char
Byte
8位无符号整数
BYTE,unsigned short
SmallInt
16位有符号整数
short
Word
16位无符号整数
unsigned short
Integer,LongInt
32位有符号整数
int,long
Cardinal,LongWord/DWORD
32位无符号整数
unsigned long
Int6 ......

DSP C优化2

3.4理解编译器的反馈信息
    在编译C代码时,编译器在产生的.asm文件里向程序员反馈了许多信息,理解这些信息,按它的提示修改C代码,对尽快优化代码很有好处。只要用-k令编译器保留.asm文件,就可读到这些信息。
    对于C优化,重点就是循环,对于反馈信息,我们主要考察编译器对流水线 ......

一些常见的c/c++笔试题

1.下面哪种代码风格更好,why?
A .   if ('A' == a)
       {a++;}
B.    if( a == 'A')
       {a++;}
答案:A,如果把==错写成=,因为编译器不允许对常量赋值,容易差错。
2.#define MUTI(x) (x*x)
 int i=3,j, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号