C
barsdy
这个作者很懒,什么都没留下…
展开
-
可重入函数
一、可重入函数 1)什么是可重入性? 可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数转载 2008-07-26 19:55:00 · 474 阅读 · 0 评论 -
Source Insight的具体用法
今天学习了Source Insight的具体用法,现列出教程,以备后用。作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困转载 2009-03-24 23:27:00 · 2019 阅读 · 1 评论 -
C时间函数的应用
1,时间的获取:通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);#include "stdafx.h"#include "time.h"#include "stdio.h"#include "stdlib.h"int main(void){struct tm t; //定义tm时间结构,用来存转载 2009-03-27 14:53:00 · 7581 阅读 · 3 评论 -
linux/c下对动态库的编译和装载的学习
测试的方法是将一个日志函数(mr_errlog), 单独记录在一个C文件(errlog.c)中, 对该C文件编译为一个动态库(libtest.so), 再用测试程序(main.c)调用该动态库. 1. 对动态库的编译 对动态库的编译命令可以为: gcc -fPIC -shared -o libtest.so errlog.c 其中gcc的选项说明如下:原创 2009-04-09 12:53:00 · 1952 阅读 · 0 评论 -
宏定义中的#,##操作符和... and _ _VA_ARGS_ _
1.Preprocessor Glue: The ## Operator预处理连接符:##操作符Like the # operator, the ## operator can be used in the replacement section of a function-like macro.Additionally, it can be used in the replacement转载 2009-08-14 15:10:00 · 2290 阅读 · 0 评论 -
关于inline函数的资料整理
1. inline并不是在所有地方都会inline(这个是早就知道的,例如递归不能展开,使用了函数名作为地址也不能展开)2. C标准对于何时该inline,何时不inline定义的很模糊,造成了不同编译器在实现inline功能时存在较大差异。3. 如果在c文件中定义一个inline函数,那么编译器实际上一定会产生一份该函数的汇编代码(object code),该函数会在这个文件中任转载 2012-04-15 16:41:51 · 368 阅读 · 0 评论