随笔分类 - c/c++学习系列
摘要:1、C++内存对齐规则每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。对齐规则:1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照 #pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragma pack指定的数值和结构
阅读全文
摘要:浮点数的取整C/C++取整函数ceil(),floor()double floor(double x);double ceil(double x);使用floor函数。floor(x)返回的是小于或等于x的最大整数。如: floor(10.5) == 10floor(-10.5) == -11使用ceil函数。ceil(x)返回的是大于x的最小整数。如: ceil(10.5) == 11ceil(-10.5) ==-10floor()是向负无穷大舍入,floor(-10.5) == -11;ceil()是向正无穷大舍入,ceil(-10.5) == -10数据间隔与对齐常用设置方法:输出空格符
阅读全文
摘要:memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的。其原型是:void* memset(void *_Dst, int _Val, size_t _Size)_Dst是目标起始地址,_Val是要赋的值,_Size是要赋值的字节数。例1: char str[9]; 我们用memset给str初始化为“00000000”,用法如下 memset(str,0,8);注意,memset是逐字节拷贝的。例2: int num[8]; 我们用memset给str初始化为{1,1,1,1,1,1,1,1}, memset(num,1,8);//这样是不对的 一个int是4个字节的,8个int是
阅读全文
摘要:如果您只想取得使用者输入的字元,則可以使用getchar(),它直接取得使用者輸入的字元并传回,如果只想要输出一個字元,則也可以直接使用putchar(),以下是个简单的例子:#include int main(void) { char c; printf("请输入一个字元:"); c = getchar(); putchar(c); putchar('\n'); return 0;}如果您輸入了兩個以上的字元,則getchar()會取得第一個字元,並將第二個字元留在緩衝區中,直到您使用getchar()或scanf()再次嘗試取得輸入。...
阅读全文

浙公网安备 33010602011771号