会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
循序而渐进,熟读而精思
hang on and on
博客园
首页
新随笔
联系
管理
订阅
文章分类 -
C
c语言中volatile关键字
摘要:volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存器中取值,而不去内存中取值,是因为...
阅读全文
posted @
2010-03-20 14:36
jackyxm
阅读(125)
评论(0)
推荐(0)
内存对齐
摘要:在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预&...
阅读全文
posted @
2010-03-19 14:18
jackyxm
阅读(185)
评论(0)
推荐(0)
看了晕的指针
摘要:char *str[] = {"how" , "endofyou" , "wonderful" , "goodnight"}; char **pstr[] = { str+3 , str+2 , str+1 , str} ; char ***p = pstr ; puts( *str ); /* how */ puts( **pstr ); puts( **p ); puts( **++p );...
阅读全文
posted @
2009-11-16 15:50
jackyxm
阅读(90)
评论(0)
推荐(0)
段错误的常见原因
摘要:1 解除引用一个包含非法值的指针2 解除引用一个空指针 int *p ; /* p 并未指向任何变量 */ *p = 20 ;3 在未得到权限时进行访问4 用完了堆火堆栈空间
阅读全文
posted @
2009-11-15 11:31
jackyxm
阅读(384)
评论(0)
推荐(0)
函数指针
摘要:/*{{{*//* * expression error right 说明* * *p.f (*p).f *(p.f) . 的优先级高于* * * int *ap[] ap是一个指向int数组的指针 ap是一个指向元素为int指针 [] 高于 ** int(*ap)[] 的数组 int * (ap[])* * int *fp() fp是一个函数指针,所指函数 fp是一个函数,返回int* 函数()...
阅读全文
posted @
2009-11-15 11:14
jackyxm
阅读(187)
评论(0)
推荐(0)
函数中的局部变量在退出函数时会被销毁
摘要:/* 函数中的局部变量在退出函数时会被销毁 * >> 1 * 返回指向字符串常量的指针 */char * getstra(){ return "how are you" ;}/* * >> 2 * 使用全局声名的数组 */char global_char[]="how are you";char *getstrb(){ return global_char ;}/* &g...
阅读全文
posted @
2009-11-15 09:34
jackyxm
阅读(812)
评论(0)
推荐(0)
C多维数组的定义
摘要:typedef int Five[5] ; int five[5]; typedef Five* PFive ; int (*pfive)[5]; typedef Five ThreeFive[3]; int threefive[3][5]; typedef ThreeFive* PThreeFive; int (*pthreefive)[3][5]; typedef ThreeFive Tw...
阅读全文
posted @
2009-11-08 16:50
jackyxm
阅读(306)
评论(0)
推荐(0)
char ch[] 与 char *ch 的区别
摘要:1) char ch[2]={'c','b'}; // 输出的的值相同 printf("%d\n",ch); printf("%d\n",&ch); char (*f)[2] = &ch ; // f是指向 char[2] 类型的指针,与数组的首地址相等 printf("%c,%c",f[0],f[1]); char *pch="abc"; // 输出的的值不相同 printf...
阅读全文
posted @
2009-11-08 16:28
jackyxm
阅读(8372)
评论(0)
推荐(0)
static详解
摘要:static 声明的变量在C语言中有两方面的特征:1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它 与堆栈变量和堆变量的区别。2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。Tips:A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;B.若全局变量仅由单个函数...
阅读全文
posted @
2009-11-08 11:34
jackyxm
阅读(1370)
评论(0)
推荐(0)
公告