这篇博客可能不是像通常的编程书籍一样从“hello world”进行一个可视化的一个例程主要就是对一些C的特性包括关键字的一些理解也是用到一个整理一个所以逻辑性和连贯性可能不是很好纯粹作为C的一个知识积累如果当中有不正确的地方还请批评指正1.typedef关键字typedef能够创建类型的别名typedef double real; //make real another number for double也可以作为函数指针的别名typedef const double *(*p_fun)(const double *, int); //p_fun now a type name2.union1、什么是联合“联合”是一种特殊的类也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型 一个被说明为该“联合”类型的变量中允许装入该“联合”所定义的任何一种数据这些数据共享同一段内存已达到节省空间的目的还有一个节省空间的类型位域。 这是一个非常特殊的地方也是联合的特征。另外同struct一样联合默认访问权限也是公有的并且也具有成员函数。2、联合与结构的区别“联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间 一个结构变量的总长度是各成员长度之和空结构除外同时不考虑边界调整。而在“联合”中各成员共享一段内存空间 一个联合变量的长度等于各成员中最长的长度。应该说明的是 这里所谓的共享不是指把多个成员同时装入一个联合变量内 而是指该联合变量可被赋予任一成员值但每次只能赋一种值 赋入新值则冲去旧值。3.inlineC的内联函数主要是C为提高运行速度所做的一项改进通常普通的函数在程序调用的时候是像阅读注脚一样从正文中跳到这一页的末端然后再回到正文。内联函数相当于在正文中直接划出一部分区域作为注释那么在阅读文章时也就不需要跳来跳去但是也会存在一个问题如果同一个注释内联函数需要使用10遍那么就要在在正文中划出10个对应的空间给它速度虽然有所提升但是是以内存开销的增加作为代价的所以一般内联函数的定义不宜过长。要使用这项特性要采取下列措施之一在函数声明前加上关键字inline在函数定义前加上关键字inline通常做法是省略原型将整个定义即函数头和所有函数代码放在本应提供函数原型的地方。3.class类声明类似结构声明可以包括数据成员和函数成员。声明私有部分在其中声明的成员只能通过成员函数进行访问声明还具有共有部分在其中声明的成员可被使用类对象的程序直接访问。通常数据成员放在私有部分成员函数放在公有部分中因此典型的类声明格式如下class className { private: data_member declarations public: member function prototypes };4.头文件管理在同一个文件中只能将同一个头文件包含一次记住这个规则很容易但很可能在不知情的情况下将头文件包含多次。例如可能使用包含了另外一个头文件的头文件。有一种C技术可以避免多次包含同一个头文件、它是基于预处理器编译指令#ifndef即if not defined的。下面的代码片段意味着仅当以前没有使用预处理器编译指令#define定义名称COORDIN_H_时才处理#ifndef和#endif之间的语句#ifndef COORDIN_H_ #define COORDIN_H_ ...//something you want to do #endif5.strcpy函数原型为char *strcpy(char *dest,const char *src)头文件#includestring.h/#include cstring功能是 从src地址开始且含有null结束符的字符串复制到以dest地址开始的字符串中并返回指向dest的指针。通俗的讲就是将 src字符数组复制到dest数组中如果dest数组本身有数据会把src里的数据全部复制到dest中如果dest中有数据小于src地址长度的将会被覆盖而大于src长度的将保留说明dest的地址长度要足够大不然会产生溢出。Dest的内存长度要大于等于src的内存长度。6.size_ttypedef long unsigned int size_tsize_t的类型也就是long unsigned int类型。之前在应用的时候并没有很注意这些的使用但是在实际应用时为了实际的效率和提高内存应用才特别注意使用这些所以还是要了解这几种类型的具体的位的长度。未完待续。。。参考地址https://zhidao.baidu.com/question/410394259.html
阅读完成 · 觉得有帮助?