C Program
文章平均质量分 71
请叫我四哥
人生会碰到好多事,好事,坏事.
展开
-
getopt_long()用法详解
getopt_long()目录文件函数原型函数说明范例编辑本段文件#include 编辑本段函数原型int getopt_long(int argc, char * const argv[],const char *optstring,const struct option *longopts, int *转载 2013-05-02 15:36:33 · 2079 阅读 · 0 评论 -
<<C语言深度剖析>>学习之七之函数
C中函数是C程序组成的重要部分.养成良好的编程习惯是很有必要的:方便自己阅读和他人阅读.1.编码风格 1-1.注释: 函数的注释应该包括下面内容: 1).函数名; 2).日期; 3).编码者; 4).函数的功能描述; 5).参数说明:包括输入参数和输出参数; 6).函数的返回值; 模板如下:/原创 2013-06-24 14:03:17 · 551 阅读 · 0 评论 -
<<C语言深度剖析>>学习笔记之六之内存管理
C语言和内存打交道比较多的莫过于指针了. 1.野指针: 为防止野指针的出现,需要养成良好的编程习惯--指针要时刻要有明确的指向对象,否则其随机指向一块内存区域,哪个地址再引用就会引发莫名的BUG.为避免野指针,规范的编程习惯如下: 定义指针时初始化为NULL;指针用完后还是赋值为NULL. 2.内存的三个部分原创 2013-06-24 10:57:48 · 659 阅读 · 0 评论 -
<<C语言深度剖析>>学习笔记之五:指针与数组
1.指针: 通俗说法: 一个基本的数据类型(如char、int、struct)后面加上"*"号就构成了一个指针类型的模子.这个模子是一定的,与"*"号前面的数据类型无关--在32位系统下是4Byte.也可以理解成PC指针的寻址能力,比如一个32位的SOC,其寻址能力为4G(2^32).如果不是4Byte(32bit),又怎么可以完全寻址呢?"*"前面的数据类型影响指针的原创 2013-06-22 15:08:38 · 928 阅读 · 0 评论 -
<<C语言深度剖析>>学习笔记之三:符号
C语言里面的符号 1.单引号、双引号: 双引号引起来的都是字符串常量,单引号引起来的都是字符常量.一个字符如果以字符形式存在和以字符串形式存在占用的内存是不一样的.比如: 'a'占1个byte; "a"占2个byte. 2.逻辑运算符 2-1."或" 示例:#include #include int main原创 2013-06-19 16:28:34 · 647 阅读 · 0 评论 -
<<C语言深度剖析>>学习笔记之一:C语言中32个关键字
1.C语言中的关键字: C语言一共有32个关键字.罗列如下: auto 声明自动变量,缺省时编译器一般默认为auto int 声明整形变量 double 声明双精度变量 long 声明长整型变量 char原创 2013-06-10 23:32:26 · 463 阅读 · 0 评论 -
<<C语言深度剖析>>学习笔记之四:预运算符
预处理: 1.C语言中的预编译指令罗列如下: #define #undef #include #if #else #elif #endif #ifdef #ifndef #line 改变当前行数和文件名称.命令的基本形式如:#line number["filename"]原创 2013-06-20 15:06:46 · 685 阅读 · 0 评论 -
<<C语言深度剖析>>学习笔记之二:关键字详解
1.auto 编译器在默认的缺省情况下,所有变量都是auto.2.register 2-1.这个关键字的作用: 请求编译器尽可能的将变量存在 CPU 内部寄存器中而不是通过内存寻址访问以提高效率.其访问速度比内存还要快得多. 2-2.被这个关键字修饰的特性: 2-2-1.register原创 2013-06-19 11:10:00 · 808 阅读 · 0 评论 -
GNU C attribute section的一个使用例子
1.前言: 在内核中我们经常遇到"section"类似的字眼.把相关的CPU或设备信息存放在某个section里面.然后对这个section进行遍历,判断这个section里面是否有我们自己想要的信息.这是一种不错的编译思想.下面整理了一个示例来加固下这种思想的学习.2.示例: car.h #ifndef _CAR_H_#define _CAR_原创 2013-06-12 15:35:22 · 3798 阅读 · 1 评论 -
C语言宏定义##连接符和#符的使用
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP)转载 2013-06-11 16:21:34 · 452 阅读 · 0 评论 -
fcntl()函数使用说明
fcntl目录表头文件函数类型参数介绍参数fd参数cmd参数lock指针功能介绍函数返回值使用实例展开表头文件函数类型参数介绍参数fd参数cmd参数lock指针功能介绍函数返回值使用实例展开编辑本段表头文件#include #include #include fcntl.h>编辑本段函数类型定义函数 int fcntl(i转载 2013-05-31 11:40:11 · 587 阅读 · 0 评论 -
assert
宏名: assert功 能: 测试一个条件并可能使程序终止用 法: void assert(int test);程序例:#include assert.h>#include #include struct ITEM {int key;int value;};/* add item to list, make sure list is not null *转载 2013-05-09 14:22:42 · 779 阅读 · 0 评论 -
<<C语言深度剖析>>学习之八之文件结构
一个工程往往由多个文件组成.对于文件的管理、命名都非常重要.1.每个头文件和源文件的头部必须包含文件头部说明和修改记录.主要要包括下面的内容: 1).作者; 2).日期; 3).功能描述; 4).版权; 5).版本: 模板如下:/*******************************************原创 2013-06-24 16:52:57 · 513 阅读 · 0 评论