![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
ONIM
这个作者很懒,什么都没留下…
展开
-
gcc的__attribute__编译属性
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或数据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对代转载 2014-03-29 14:50:54 · 675 阅读 · 0 评论 -
t和printf的缓冲机制
众所周知,cout和buffer都是有缓冲的(网上很多把cout和printf混用出错归结为一个有缓冲,一个无缓冲,事实会在下面说明) cout和printf的输出是先从右往左读入缓冲区,再从top到bottem输出 对,这里的缓冲区相当于堆 栈的效果 a = 1; b = 2; c = 3; cout buffer:|3|2|1| output:|3|2|转载 2014-04-19 16:33:34 · 1015 阅读 · 0 评论 -
堆和栈的区别
一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态转载 2014-04-19 22:21:36 · 944 阅读 · 0 评论 -
C语言之const
const 面试笔试经常会考原创 2014-05-24 15:14:43 · 657 阅读 · 0 评论 -
内存字节对齐
写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧. /******************************分割线 如果体系结构是不对齐的,A中的成员将会一个挨一个存储,从而sizeof(a)为11。显然对齐更浪费了空间。那么为什么要使用对齐呢? 体系结构的对齐和不对齐,是在时间转载 2014-06-15 09:21:56 · 536 阅读 · 0 评论 -
指针详解
指针的指针 void FindCredit(int **); main() { int vals[]={7,6,5,-4,3,2,1,0}; int *fp=vals; FindCredit(&fp); printf("%d\n",*fp);转载 2014-06-02 13:45:33 · 892 阅读 · 0 评论 -
笔试之c语言
个人总结,欢迎指正~ 二分法: #include int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int num,max,min; printf("Input a num which you wang to find out\n"); scanf("%d",&num); max = sizeof(a); min = 0; whil原创 2015-03-20 18:22:51 · 580 阅读 · 0 评论 -
《C陷阱与缺陷》笔记--2.1理解函数声明
(*(void(*)())0)();这句代码的功能是硬件将要调用首地址为0的子程序。转载 2015-06-13 09:45:58 · 569 阅读 · 0 评论 -
c指针在函数调用过程中的问题
#include #include int *c; void f(int *b) { int a = 10; b = &a; } int main() { int tmp; f(&tmp); printf("%d\n",tmp); return 0; } 上面这段代码打印的结果是: 稍微改一下: #include #include int *c; void f(int原创 2015-12-01 09:34:04 · 818 阅读 · 0 评论