![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习
平凡的世界_
润叶姐
展开
-
C语言边界对齐问题
首先为什么需要边界对齐呢? 考虑一个问题,为什么要设计内存对齐的处理方式呢?如果体系结构是不对齐的,成员将会一个挨一个存储,显然对齐更浪费了空间。那么为什么要使用对齐呢?体系结构的对齐和不对齐,是在时间和空间上的一个权衡。对齐节省了时间。假 设一个体系结构的字长为w,那么它同时就假设了在这种体系结构上对宽度为w的数据的处理最频繁也是最重要的,它的设计也是从优先提高对w...转载 2018-04-17 20:01:51 · 1873 阅读 · 2 评论 -
指针数组和数组指针
转载请标明出处:http://blog.csdn.net/sum_tw https://blog.csdn.net/sum_TW/article/details/535408661、数组指针(指向数组的指针)(1)数组在内存中的表示 创建一个数组就是在内存里面开辟一块连续的空间,比如int a[4];就是在内存里面开辟了一个大小为4*sizeof(int)字节的内存空间。二维数组是特殊的一维数...转载 2018-04-18 11:14:11 · 198 阅读 · 0 评论 -
C语言中的getchar()与putchar()详解
getchar() 用于读取用户从键盘输入的单个字符,它有一个整型的返回值,当发生读取错误的时候,返回整型值-1,当读取正确的时候,它会返回用户从键盘输的第一个字符的ASCII码,当程序调用getchar时.运行程序时就等着用户从按键输入,用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中),当用户键入回车之后,getchar才开始从输入流中每次读入一个字符,输...原创 2018-04-13 14:47:49 · 127228 阅读 · 16 评论 -
printf 函数实现的深入剖析
研究printf的实现,首先来看看printf函数的函数体int printf(const char *fmt, ...){int i;char buf[256]; va_list arg = (va_list)((char*)(&fmt) + 4); i = vsprintf(buf, fmt, arg); write(buf, i); ...转载 2018-09-25 15:45:50 · 208 阅读 · 0 评论 -
extern 详解(内有extern "C" 讲解)
基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的...转载 2018-09-25 17:19:58 · 506 阅读 · 0 评论 -
无符号整型赋值陷阱
有没有人尝试过将负数赋给一个无符号整型变量?知不知道这样做会发生什么?还没有尝试的就让我们来探索下无符号整型隐藏的秘密。先来看看下面代码:int main(){ unsigned int val = -1; cout<<val<<endl; return 0;}执行的结果:4294967295请按任意键继续. . ...转载 2018-09-21 10:05:18 · 930 阅读 · 0 评论