ChinaUnix.net
相关文章推荐:

静态函数

本帖最后由 garyv 于 2011-06-03 11:49 编辑 头文件comm.h[code] #ifndef __COMM_H__ #define __COMM_H__ static /*inline*/ int get_val(void) { return 3; } #endif[/code]C文件a.c[code] #include #include void func(void); int main(int argc, char *argv[]) { func(); printf("%d\n", get_val()); return 0; } [/code]C文件b.c[code] #include #include ...

by garyv - 嵌入式开发 - 2011-06-03 18:18:17 阅读(2231) 回复(3)

相关讨论

最近在看一段系统代码,碰到有关静态函数的东西,有些不解,具体如下: 假设以下场景: 在test.c文件中有以下函数, void main() { A1(10); A2(50); } void A1(int x) { B(X); } void A2(int x) { B(X); } static void B(int y) { printf("y=",%d); } 要我没理解错的话,两次输出分别为10,50。 问题是: 静态函数B()被2次调用,那对于里面的变量y,在程序结束前它是在内存中是不是留有2份COPY?还是说...

by sherf - C/C++ - 2008-11-28 16:00:04 阅读(2466) 回复(12)

function php2html ($url='http://localhost', $htmlFilePath='/tmp/', $htmlFileName='index.html', $logPath='/tmp/', $logName='log.txt') { $htmlContent = file_get_contents($url); //将文件读入 $f_index_html 变量 $htmlPathFile = $htmlFilePath . $htmlFileName; //要生成文件及路径 例: "a/index.html" //die($htmlPathFile); if (is_file($htmlPathFile)) { @unlink($htmlPathFile);//若文件已存在,...

by yanjing5462 - php文档中心 - 2006-08-02 15:24:16 阅读(637) 回复(0)

本帖最后由 Mr_Yao 于 2011-11-29 08:48 编辑 问题: 1.静态函数和全局函数编译之后存放在什么位置? 有的说是在代码区,有人说是在静态变量区。是不是应该存放在代码区内的一个区域里面? 2.静态函数和可重入函数具体是什么关系? 3.静态函数和全局函数的出现有什么目的?是为了更好的实现回调函数么? 或者说,回调函数都是静态或者全局函数么? 欢迎讨论,多谢大家!

by Mr_Yao - C/C++ - 2011-12-01 13:08:55 阅读(5213) 回复(8)

在c++中类的成员函数都是保存在静态存储区中的 ,那静态函数也是保存在静态存储区中的,他们都是在类中保存同一个惫份,那他们有什么区别吗?除了普通成员函数要通过对象调用,而静态成员可以通过类直接调用以外,好象就只有说静态函数只能访问类中的静态成员变量了。 还有其他的区别吗?加入静态函数的目的是什么呢??

by gaozhongshan - C/C++ - 2013-07-25 12:39:14 阅读(53956) 回复(15)

有这样一个问题: 原来在内核代码文件a.c中有一个静态函数static int f(int i, int j); 后来因为代码修改的需要,要在文件b.c中访问a.c中的f函数, 有同事在a.c中封装了一个函数 int f2(int i, int j) { return f(i, j); } 然后在b.c中调用f2函数。 按我的理解,c中的静态函数只是起了限制函数作用域的作用,只能在本文件中访问,其编译生成的符号不会对外,所以不用担心 跟其他文件中存在同名函数的问题。那么在这个例子中...

by RafaMan - 内核源码 - 2011-12-31 09:56:53 阅读(1936) 回复(13)

调了很长时间,最后才发现静态函数进去,没有符号的。 谢谢

by ghye - Linux环境编程 - 2011-11-18 17:24:53 阅读(2772) 回复(1)

首先要根据README里编译生成一个gcc的patch版本 用这个patch过的gcc就能生成.cdepn中间文件, 然后再用genfull和gengraph就能生成静态函数调用关系图了 genfull -g cdepn -o full.graph gengraph -t --output-type png -f main 我现在遇到个程序只能生成个main,具体原因不明,这时候只能用替代的方法 genfull -g cobjdump了 文件: codeviz-1.0.11.zip 大小: 2705KB 下载: 下载 本文来自ChinaUnix博客,如果查看原文请点:http://...

by jiushen - Linux文档专区 - 2007-11-07 18:10:48 阅读(1030) 回复(0)

源代码如下: void* COCIConnPool::thMaintain( void* pParam ) { COCIConnPool* pObj= (COCIConnPool*)pParam; //对象指针 unsigned int iCount= 0; pthread_detach( pthread_self() ); printf( "COCIConnPool maintain thread [%d:%d] start up !\n", (INT32)getpid(), (INT32)pthread_self() ); while ( pObj->m_cInitFlag ) { usleep( 500 ); iCount++; if ( iCount % 20 == 0...

by SeaKing911 - C/C++ - 2006-08-26 14:10:15 阅读(2155) 回复(2)

file test.h [code] namespace{ void func1(); } static void func2(); [code] 函数 func1 和 func2 都将可见性限制在文件 test.h 中 这两种用法有什么区别?

by karabiner - C/C++ - 2004-11-02 16:38:37 阅读(779) 回复(0)

本帖最后由 moonsister02 于 2012-04-15 19:44 编辑 如何绑定类的非静态函数,到一个C回调函数? stl的mem_fun_ref,bind1st,bind2nd是用来绑定类的成员函数(非静态)到algorithm对象的。 但是如果我要绑定的是一个C风格的回调函数(不是ptr_fun转成类函数)的话,不能有this指针的。 例如,我想创建两个线程,每个线程创建的时候都把一个对象和线程联系起来,windows的线程回调函数打印对象的信息。 用stl的functional/mem_fun_ref...

by moonsister02 - C/C++ - 2012-04-15 19:43:21 阅读(3199) 回复(1)