ChinaUnix.net
相关文章推荐:

头文件 重复定义

定义头文件时,一般要加入如下语句,以定义test.h为例 #ifndef TEST_H #define TEST_H ··· #endif 用来防止重复包含头文件第一次包含头文件时 XXX没有被定义 第二次再用时 XXX 已经被定义拉就不在包含这个头文件,一般用在程序比较大,涉及的工程文件比较多,为了避免多个文件中定义重复而使用。 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/96509/showart_1932409.html

by jj807 - Linux文档专区 - 2009-05-18 19:26:15 阅读(767) 回复(0)

相关讨论

多个程序公用一个头文件头文件定义是要小心的。容易造成重复定义头文件里不要定义变量,采用 extern 声明你的变量和函数。如: #define HASLABEL 1 #define ISFIELD 0 extern UInt cursor; //在其他文件里定义 extern Boolean StrIsNum( CharPtr str ); //在其他文件里定义 把函数声明(不是定义)放在公用头文件里不会有什么问题。 而全局变量确实不宜放在header里面定义,如果被多于一个的.c(cpp)引用,就会出现mu...

by khyang - Linux文档专区 - 2006-04-03 19:56:08 阅读(998) 回复(0)

一个项目用到两个头文件,在这两个头文件中有相同的定义,如: typedef __int8 int8_t; 请问如何在不改这两个头文件的情况下,使编译通过,不显示重复定义的错误 谢谢

by shenxiaocheng - C/C++ - 2011-05-24 11:42:34 阅读(2868) 回复(3)

test-1.0使用#ifndef只是防止了头文件重复包含(其实本例中只有一个头件,不会存在重复包含的问题),但是无法防止变量被重复定义。 # vi test.c ------------------------------- #include #include "test.h" extern i; extern void test1(); extern void test2(); int main() { test1(); printf("ok "); test2(); printf("%d ",i); return 0; } # vi test.h ------------------------------- #ifndef _TEST_H_ #...

by ubuntuer - Linux文档专区 - 2009-12-28 10:12:30 阅读(2153) 回复(0)

例如: #ifndef ST_FONT_DEFINED typedef struct{ int CharSet; int Width; int Height; int Bold; int Italic; }ST_FONT; #define ST_FONT_DEFINED #endif 在2个头文件中这样做了之后,哪个被先include到,将会define ST_FONT_DEFINED。因此,后被include到的那个结构体,就不会再被定义了。 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/99283/showart_2108086.html

by klutercoco - Linux文档专区 - 2009-12-01 11:15:16 阅读(3218) 回复(0)

多个文件include某个头文件,编译这些文件引起变量重复定义,大家遇到这种问题如何处理? 我试着用ifndef。。endif没用

by rock_jq - C/C++ - 2006-12-29 23:15:11 阅读(12154) 回复(40)

各位,小弟请教一个关于头文件定义函数,在编译时出现重复定义的问题 小弟发现在头文件中加入于预编译控制 #ifndef *** #define *** …… #endif 只能防止变量的重复定义错误,而不能保证函数的重复定义错误, 比较郁闷 小弟写了一段测试程序,各位大大帮忙看看 1。head.h #ifndef __HEAD__ #define __HEAD__ int e; int i(){ printf("%d\n",e); return e; } #endif 2. head1.c #include #inc...

by zhangjiakouzf - C/C++ - 2013-10-21 20:35:35 阅读(9484) 回复(13)

我写的makefile可能有点问题,就是make的时候,一些头文件由于被多个.cpp文件包含而编译了多次,于是同一个头文件的警告重复输出了好多次。看起来很不舒服。 请问有什么办法解决吗? 谢谢。

by UnixStudier - C/C++ - 2008-11-28 13:34:48 阅读(2274) 回复(4)

相信大多数人定义一个头文件一般如下 #ifndef __XXX_HH #define __XXX_HH /* your code */ #ednif 以避免重复定义 最近看了一下 glibc2.2.5 里面的assert.h 发现 他的定义比较有意思 并没有完全用宏来包含所有的内容 如下: #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif #endif /* assert.h */ #define _ASSERT_H 1 #include

by godsayyou - C/C++ - 2008-09-21 17:27:47 阅读(1402) 回复(1)

我写了一个pp文件 file1.pp 内容为 file {'/tmp/1': ensure => directory } file {'/tmp/1/1.txt': content => 'this is 1.txt file' } file {'/tmp/1/2.txt': content => 'this is 2.txt file' } file {'/tmp/1': ensure => absent, force => true } 然后,执行puppet apply file1.pp 报错:提示/tmp/1重复定义 求解决?

by string2020 - Linux系统管理 - 2014-06-03 14:19:19 阅读(648) 回复(0)