嵌入式Linux中文站

C语言的数据类型及其对应变量

阅读(212)

声明,定义和初始化 声明 标识符iden是告诉编译器有这么一个变量var,具体var里是什么,你自己去看。声明只需要标识符的类型和标识符名字,C语言的任何标识符在使用前都需要声明,当然变量也不例外;如果标识符的定义代码在使用之前,那么定义的代码可以看作是声明,否则需要声明 定义 标识符iden是告诉编译器这个iden是什么; 初始化 标识符iden是定义iden时给iden赋值,一个没有被赋值的iden里面存的是之前这块内存的值,就可能是任意的值,一不小心使用这样的标识符是十分危险的,所以一个好的习惯是定

表达式,语句,变量与宏的一些概念

阅读(239)

表达式 表达式 C语言中分为常量表达式,算术表达式,关系表达式,逻辑表达式,赋值表达式,逗号表达式和复合表达式etc。表达式可以分为左值和右值 左值(ell-value) 可以出现在赋值运算符的左边或者右边,变量就是一个左值表达式 右值(are-value) 只能出现在赋值运算符的右边,数字字面值就是一个右值表达式。 语句 语句 是C语言用于表达命令逻辑语法结构,主要分为表达式语句,语句块,空语句,控制语句和特殊语句 变量 从语言的角度看,变量是一个左值,可以放在赋值运算符的左边接受一个值或者是右边用来给

条件编译,头文件,静态库,共享库与多文件编程

阅读(260)

条件编译 条件编译即满足某些条件的时候编译某部分代码,常用于开发多个版本的程序,当满足条件A时,编译出免费版本的软件,当满足条件B时,编译除vip版本的软件,可以提高代码的复用率。条件编译使用预处理命令+宏定义来实现,更多宏命令参见 $vi tutu.c # ifdef VIP //也可以写成#if defined (VIP) //把免费版改造成VIP版的代码 # elif defined PRO //把免费版改造成PRO版代码 # endif //免费版本的代码 $gcc -DVIP tutu.c //

Linux目录操作

阅读(180)

mkdir() # include sys/stat.h # include sys/types.h int mkdir ( const char *pathname, mode_t mode) ; opendir()、fdopendir() //打开一个文件夹流,返回一个绑定了这个流的指针,成功返回一个指针,失败返回NULL设errno # include sys/types.h # include dirent.h DIR * opendir ( const char *name) ; DIR * f

Linux计时器

阅读(194)

Linux中, 系统为每个系统都维护了三种计时器,分别为: 真实计数器, 虚拟计时器以及实用计时器, 一般情况下都使用真实计时器 getitimer()/setitimer() //读取/设置内部计时器 # include sys/time.h int getitimer ( int which, struct itimerval *curr_value) ; int setitimer ( int which, const struct itimerval *new_value, struct itim

Makefile内嵌函数

阅读(158)

subst字符串替换函数 $(subst from, to, text) ,把 text 中的 from 字符串替换成 to ,返回被替换过的字符串 SRC: = /mnt/ hgfs /share/ 123 DES: =$(subst /mnt,/root,$(SRC)) #ATTENTION:是,/root不是, /root all: @echo $(SRC) @echo $(DES) /mnt/ hgfs /share/ 123 /root/ hgfs /share/ 123 patsubst模式字

Makefile变量

阅读(97)

自定义变量 = 是最基本的赋值,会把整个makefile展开之后再决定是多少 x =foo y =$(x)bar #y是asdbar,不是foobar x =asd := 是覆盖之前的值,和=不同,和赋值的位置有关 x=fooy:= $(x) bar #y是foobarx=asd ?= 是如果没有被赋值过就赋予等号后面的值,赋过了就不管了 += 是添加等号后面的值 变量的使用 和shell一样,makefile通过 $(FLAGS) 来读取变量 FLAGS 的值,对于 $ 本身,使用 $$ 读取 变量替换

Makefile关键字

阅读(165)

@ makefile会把将要执行的命令行在命令执行前输出到屏幕上,使用 @ 可以避免显示出命令本身 若 @ echo 正在编译 则 $make 显示 正在编译 若 echo 正在编译 则 $make 显示: echo 正在编译正在编译 override 如果一个变量的值需要在编译选项中指定或由系统传入,那么makefile中可以使用override关键字来设置,使这个变量的赋值被忽略 define 使用define关键字可以定义多行变量 define two-lines echo foo echo $(b