C/C++
文章平均质量分 53
afantii
音乐家。。。
展开
-
可重入函数
一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反,不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。2)转载 2008-07-11 16:23:00 · 372 阅读 · 0 评论 -
信号量和自旋锁
信号量和自旋锁 内核同步措施 为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。 Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux从单处理器到对称多处理器的过度;伴随着从非转载 2008-09-26 11:36:00 · 548 阅读 · 0 评论 -
简单的位操作
位操作(Bit manipulation) 9. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。对这个问题有三种基本的反应1)不知道如何下手。该被面者从没做过任何嵌入式系统的工作。2) 用bit fields。Bit fields是被扔到C语言死角的东西,它保证你的转载 2008-07-27 10:34:00 · 467 阅读 · 0 评论 -
更深层次分析一道试题——指针内存分配
指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1 中,Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(char *p, int num){p = (char *)malloc(sizeof(char) * num);}void Test(voi转载 2008-07-27 19:10:00 · 331 阅读 · 0 评论 -
C语言面试题目(3)
53.以下三个有什么区别?char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改const char *p; //和char const *p54. char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4转载 2008-07-27 10:54:00 · 1226 阅读 · 0 评论 -
C语言面试题目(2)
C语言面试题目(2) 2007-09-28 14:24:06 本文已公布到博客频道职场·创业分类 19. 设有以下说明和定义:(注意变量占用字节在不同平台下是不同的)typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;转载 2008-07-27 10:53:00 · 965 阅读 · 0 评论 -
C语言面试题目(1)
C语言面试题目(1) 1. static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域2. 引用与指针有什么区别? 1. 引用必须被初始化,指针不必。 2. 引用初始化以后不能被改变,指针可以改变所指的对象。 3. 不存在指向空值的引用,但是存在指向空值的指针。3. 描述实时系统转载 2008-07-27 10:52:00 · 612 阅读 · 0 评论 -
const
const int a;int const a;const int *a;int * const a;int const * a const;/******/前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味转载 2008-07-27 10:29:00 · 396 阅读 · 0 评论 -
两道链表小题
1:有两个单向链表,表头pHeader1,pHeader2,请写一个函数判断这两个链表是否有交叉.如果有交叉,给出交叉点.程序不能改变链表的内容,可以使用额外的空间,时间复杂度尽量小,最好给出两种解.(双重循环的解由于时间复杂度高,不算正解). 2:.有单向链表,其中节点结构为Node{int value;Node *pNext};只知道指向某个节点的指针pCurrent;并且知道该节点不是尾节原创 2008-07-26 22:04:00 · 799 阅读 · 0 评论 -
C语言 64位整型的printf格式控制
long long a;1.DEV C printf("%I64u/n",a); 2.linux环境 printf("llu/n",a);原创 2008-07-25 12:05:00 · 3883 阅读 · 0 评论 -
不用回车的getchar()
#include #include #include #include #include char getch(){ char c=0; struct termios org_opts, new_opts; int res=0; //----- store ol转载 2008-07-12 21:19:00 · 2423 阅读 · 0 评论 -
Code::Blocks 多线程程序的编译
错误:undefined reference to pthread_create 解决:Project -> Build options -> Linker settings -> Link libraries 里加上pthread原创 2008-09-28 17:35:00 · 1007 阅读 · 0 评论