C语言面试题分类->回调】的更多相关文章

本文主要讲解如果实现回调,特别是在封装接口的时候,回调显得特别重要,我们首先假设有两个程序员在写代码,A程序员写底层驱动接口,B程序员写上层应用程序,然而此时底层驱动接口A有一个数据d需要传输给B,此时有两种方式: 1.A将数据d存储好放在接口函数中,B自己想什么时候去读就什么时候去读,这就是我们经常使用的函数调用,此时主动权是B. 2.A实现回调机制,当数据变化的时候才将通知B,你可以来读取数据了,然后B在用户层的回调函数中读取速度d,完成OK.此时主动权是A. 很明显第一种方法太低效了,B根…
有关指针的经典面试题 C语言为何如此长寿并实用?C++为什么有那么多精彩?指针可以说是C/C++中的灵魂所在,虽然早期中pascal也有指针,但是和C/C++比起来不是一个级别的.今天为大家深入浅出的解析一下指针的有关笔试,面试题.所有题目来源网络,分析是我写的... 0.预备知识,最基础的指针 其实最基础的指针也就应该如下面代码: int a; int* p=&a; 也就是说,声明了一个int变量a,然后声明一个int 的指针,*p指向a的地址,&也就是取地址符号,而*是指针中取内容的符…
链表的创建,清空,插入,删除 typedef int (* __compfunc)(const void *, const void *); //Traverse list. Fast macro to traverse the list.#define linklist_next(al) \      ((al) && ((al)=(al)->next) ? (al)->data : NULL) typedef struct linklist{  void *  data; …
1.strlen:计算字符串长度(不包含'\0') 实现想法:遍历字符串,直到'\0'结束 #include<stdio.h> #include<stdlib.h> #include<string.h> //指针法 unsigned int mystrlenaddr(const char * str) //为什么使用const char,我们只计数不对原数据进行改变 { ; //长度初始化为0 while (*str++) { length++; } return le…
1.选择排序. 每次将最小的数,与剩余数做比较.找到更小的,做交换. 时间复杂度:O(n²) 空间复杂度:O(1) 优缺点:耗时但内存空间使用小. void selectSort(int *p,int len) { int i, j,tmp; ; i < len; i++) { ; j < len; j++) { if(p[i] > p[j]) { tmp = p[i]; p[i] = p[j]; p[j] = tmp; } } } }int main(){    int array[8…
1.不用临时变量交换两个整数. a = a ^ b; b = a ^ b; a = a ^ b; 2.实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如9的二进制是1001,则输出2. int check_count_fun( int number) { while(number != 0) { number = (number - 1) & number; //与本身减1作与运算,所得数将本身最右侧1变为0. count++; } return count; } int main(…
1.写一个“标准”宏,这个宏输入两个参数并返回较小的一个 答:#define MIN(x, y) ((x)<(y)?(x):(y))//注意x,y要加括号,因为x,y如果有复合运算会出现问题. 2.宏定义中#与##的作用? 答:#是把宏参数转化为字符串的运算符,##是把两个宏参数连接的运算符. 例如: #define STR(arg) #arg          则宏STR(hello)展开时为”hello” #define NAME(y) name_y      则宏NAME(1)展开时仍为n…
嵌入式开发—C语言面试题 源地址:http://blog.csdn.net/xdx2ct1314/article/details/7358929   1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出…
C语言面试题汇总之一 1.static有什么用途?(请至少说明两种) l 限制变量的作用域: 设置变量的存储域. 2.引用和指针有什么区别? 引用必须被初始化,指针不必: 引用初始化以后不能被改变,指针可以改变所指的对象: 不存在指向空值的引用,但是存在指向空值的指针. 3.描述实时系统的基本特征. 所谓“实时操作系统”,实际上是指操作系统工作时,其各种资源可以根据需要随时进行动态分配.由于各种资源可以进行动态分配,因此其处理事务的能力较强.速度较快. 4.全局变量和局部变量在内存中是否有区别?…
摘要:12个C语言面试题,涉及指针.进程.运算.结构体.函数.内存,看看你能做出几个! 1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答:上面代码里的问题在于函数gets…