摘要:
这一题目是测试你是否知道为了访问一绝对地址而把一个整型数强制转换成一个指针。int *ptr;ptr =(int *)0x67a9;*ptr= 0xaa66;或者:*(int *const)(0x67a9)=0xaa66; 阅读全文
摘要:
嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。#define BIT3 (0x01<<3)Static int a;Void set_bit3(void){ a|=BIT3;}Void clear_bit3(void){ a &= ~BIT3;} 阅读全文
摘要:
一个定义为volatile的变量就是说它可能会意想不到的改变(改变它的情况有很多,例如操作系统,硬件,线程),这样,编译器就不会去假设这个值,也就是说,当优化器读到这个值时就会小心翼翼的去重新读取这个变量的值,而不是使用保存在寄存器中的备份。(当使用到用类型修饰符声明的变量时,系统总是从它所在的内存读取,既使系统刚从这里读取过)Volatile修饰符告诉编译程序不要对该变量所参与的操作进行优化。例子1) 并行设备的硬件寄存器。存储器映射的硬件寄存器通常加volatile例如状态寄存器。以为设备寄存器会在你的程序不知道或者不介入的时候发生改变,那是因为设备寄存器可以被外设硬件修改。相反,变量中的 阅读全文
摘要:
关键字const有什么含意?1)使用Const关键字的地方是为了说明这个参数为常量,是不应该被修改的。2)合理使用const 可以是编译器自然的保护那些不希望被修改的参数,防止被无意的代码修改。3)通过给优化器一些有用的信息,使用关键字const也许是代码更加紧凑。下面的声明都是什么意思?1)constinta;2)intconsta;3)constint*a;4)int*consta;5)intconst*aconst;1) a是一个常整数;2) a是一个常整数;3) a是一个指向常整形的指针4) a是一个指向整型的常指针;5) a是一个指向常整型的常指针; 阅读全文
摘要:
用变量a给出下面的定义a)一个整型数(Aninteger)a) int a;b)一个指向整型数的指针(Apointertoaninteger)b) int *a;c)一个指向指针的的指针,它指向的指针是指向一个整型数(Apointertoapointertoanintege)rc) int **a;d)一个有10个整型数的数组(Anarrayof10integers)d) int a[10];e)一个有10个指针的数组,该指针是指向一个整型数的。(Anarrayof10pointerstointegers)e) int *a[10];f)一个指向有10个整型数数组的指针(Apointertoa 阅读全文
摘要:
int swap (int *a, int *b){ *a = (*a) +(*b); *b = (*a) - (*b); *a = (*a) - (*b);}或者int swap (int *a, int *b){ *a = (*a) ^(*b); *b = (*a) ^(*b); *a = (*a) ^(*b);} 阅读全文
摘要:
路由表里会告诉你下一跳是哪里,也可以知道出口端口,其实网关就是一条默认路由,你想修改的话就用route命令去修改,route add 或者 route del 阅读全文
摘要:
1 /* 2 *atoi() 3 * 4 * To convert a string to integer 5 * 6 */ 7 #include 8 #include 9 #define IS_DIGIT(_arg_) ({char _ch_ = _arg_ ;(_ch_ >= '0'&&_ch_ 0 ? integer : -integer;46 47 } 阅读全文
摘要:
#include #define IS_UPPER(_ch_) (_ch_ >= 'A' && _ch_ = 'a' && _ch_ = '0' && _ch_ counter ? max : counter; counter = 0; } flag = F_UPPER; } else if (IS_LOWER(*p)) { if ( F_LOWER != flag ) { max = max > ... 阅读全文
摘要:
关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要 阅读全文
摘要:
#include #define F_LETTER 0#define F_SPACE 1#define IS_LETTER( _ch_ ) (_ch_ >= 'a' && _ch_ = 'A' && _ch_ <= 'Z') int main(){ char *str = "hello,world,a.a*a(a"; int flag = F_SPACE, n_word = 0; char *p = str; for(p = str; '\0' != *p; p ++ 阅读全文
摘要:
#includechar *mystrcpy(char *dest,char *src);unsigned int mystrlen(char *src);char *mystrcat(char *dest,char *src);int main(int argc, const char *argv[]){ char str[20] = { 0 }; char *p = NULL; p = "hello"; char *p1 = "world"; mystrcpy(str,p); mystrcat(str,p1); puts(str); prin... 阅读全文