C语言中命名空间的实现
foobar.h
1 // inclusion guard 2 #ifndef FOOBAR_H_ 3 #define FOOBAR_H_ 4 5 //// long names 6 //int foobar_some_func(int); 7 //void foobar_other_func(); 8 int some_func(int); 9 void other_func(); 10 11 // short names 12 #ifdef NAMESPACE foobar 13 #define some_func(...) foobar_some_func(__VA_ARGS__) 14 #define other_func(...) foobar_other_func(__VA_ARGS__) 15 #endif 16 17 #endif
foobar.c
1 #define NAMESPACE foobar 2 3 #include "stdio.h" 4 #include "foobar.h" 5 6 7 8 9 int some_func(int a) 10 { 11 return a + 99; 12 }
goobar.h
1 // inclusion guard 2 #ifndef GOOBAR_H_ 3 #define GOOBAR_H_ 4 5 //// long names 6 //int foobar_some_func(int); 7 //void foobar_other_func(); 8 9 // short names 10 #ifdef NAMESPACE goobar 11 #define some_func(...) goobar_some_func(__VA_ARGS__) 12 #define other_func(...) goobar_other_func(__VA_ARGS__) 13 #endif 14 15 #endif
goobar.c
1 #define NAMESPACE goobar 2 #include "stdio.h" 3 #include "goobar.h" 4 5 6 7 8 int some_func(int a) 9 { 10 return a + 8; 11 }
main.c
1 #define NAMESPACE goobar 2 #define NAMESPACE foobar 3 4 5 #include "stdio.h" 6 7 #include "goobar.h" 8 #include "foobar.h" 9 10 11 //http://stackoverflow.com/questions/389827/namespaces-in-c 12 void main() 13 { 14 int val = goobar_some_func(12); 15 printf("value = %d\n", val); 16 17 val = some_func(12); 18 printf("value = %d\n", val); 19 20 return; 21 }
爱书网:www.2ibook.com 一个优秀的视频教学网站,大学各专业的名师课程。免费,免费,免费。
QQ群:762080163
QQ群:762080163
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步