C语言需要注意的几个问题.doc_第1页
C语言需要注意的几个问题.doc_第2页
C语言需要注意的几个问题.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言需要注意的几个问题1 需要掌握C语言的最基本的运行机制:正确、熟练地掌握它的工作原理。2 必须要建立良好的编程风格和规范3 需要会有机组织项目、源代码之间的层次关系(多写代码)。容易产生疑惑的问题如下几项:(没有全部列出来,以后想到了咱们一块补充一下)1 指针与数组的关系:(有哪些段?分别放什么?初始化的和无初始化的全局变量,静态变量,局部变量、动态变量、指针变量等等各种情况)例:char *ptr = “good morning”;char arr = “good morning”; sizeof(ptr) = ? sizeof(arr) = ? ptr0 = G ? arr0 = G ?2 数据对齐问题例1:下面3个数据结构的大小分别为多少?struct st1 struct st2 struct st3 char ch; int i; char ch;char ch; char ch; int i;int i; char ch; char ch; sizeof(st1)? sizeof(st2)? sizeof(st3)?例2:sizeof(struct s2) = ?struct s1 short a;/*2 bytes*/long b;/*4bytes*/ ; struct s2 char c;s1 d;long long e;/*8 bytes*/ 3 大端与小端问题:大端小端的本质、哪些处理器和情况下用大端或小端?写代码区分大端和小端:方法1 方法2int x = 1; unionif (*(char*)&x = 1) int i;printf(“little endian”); char csizeof(int); x;else x.i = 1; if (x.c0 = 1)printf(big-endian) printf(“little endian”); else printf(“big endian”); 4 声明与定义:需要掌握针对不同变量和函数的声明和定义应该放在哪个文件的哪个位置上。l 声明 : int a; extern char * myfunc(int *);l 定义:(不能写在*.h) extern char * myfunc(int * ptr) 5 需要掌握一些关键字的意义l static:静态变量,代码可重入性l extern(引用外部定义的变量或者函数)l Const(区别) int const a; const int b; const int *c; int * const d; const int * const e;l volitaile unsigned *port = (volitaile unsigned *)0xffffffff(不让编译器优化,什么时候用?看看i/o寄存器相关代码)6 变量指针和函数指针例1:函数指针 (man signal)void (*signal(int signo, void (*func)(int)(int); typedef void (*_sighandler_t)(int); #define SIG_DFL (_sighandler_t)0) #define SIG_IGN (_sighandler_t)1)#define SIG_ERR (_sighandler_t)-1)例2:下面的C语言是什么意思?typedef int (*(*(*func)(char*)5)(int);例3:下面的C语言是什么意思?struct ret(例子) int number; char *text (*my_shm)(struct *pret, int num);练习题:l 自己写一个函数指针: int (*select2)(int, int)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论