... in C++我如何避免名称混搭?
10
A
回答
23
你不能。它内置于编译器中,可以让你重载函数,并在不同的类和类似的东西中使用同名的函数。但是你可以编写像C函数一样的函数。这些可以从C代码中调用。但是,这些不能超载,不能由“正常” C++函数指针调用:
extern "C" void foo() {
}
上述功能将像C函数编译器被截断。这可能根本不包括名称的变化,或者一些变化,比如前面的“_”。
7
你的意思是说你可以导出你的函数库吗? extern "c" {}
6
其他方式:
控制名称中使用的汇编代码(gcc spec.)
您可以指定名称在汇编代码可用于C函数或可变的写作声明者之后的asm(或__asm__)关键字。您应该确保您选择的汇编程序名称不与任何其他汇编程序符号或引用寄存器冲突。
为函数指定的汇编名,写出它的定义之前的函数的声明,并把ASM那里,就像这样:
int func() asm ("MYFUNC");
int func()
{
g++
将编译并nm -D
输出将
0000000000001e02 T MYFUNC
,而不是
0000000000001e02 T _Z4funcv
测试对于g ++ 4.9.2
相关问题
- 1. 如何避免混乱格式化?
- 2. MongoDB如何避免SQL注入混乱?
- 3. 架构名称与表名 - 如何避免冲突?
- 4. 避免路径名称与批处理
- 5. 避免QML中的名称冲突
- 6. 名称空间避免冲突 - 例子?
- 7. EntityFramework(ORM)对象名称和域模型名称 - 如何避免重复?
- 8. Dexguard:避免串混淆
- 9. 如何避免Windows Workflow(WF)中的名称?
- 10. 如何验证名称字段以避免数字
- 11. 如何避免在Visual Studio下的名称隐藏警告?
- 12. 如何避免与OpenMPI的名称冲突?
- 13. JAXB:如何避免xmlns的重复名称空间定义:xsi
- 14. Node.js,如何避免事件名称空间冲突?
- 15. 如何避免通过名称调用JavaScript方法eval()?
- 16. 如何避免内部课堂名称冲突?
- 17. 如何避免在python中用空格拆分名称
- 18. 如何避免在aspx页面中重复名称空间
- 19. 如何避免HQL,Hibernate中的硬编码字段名称?
- 20. 如何避免ms访问公式中的名称错误?
- 21. 如何避免Excel本地化对象名称和破坏宏?
- 22. Ninject如何避免多个名称绑定
- 23. 如何避免BDD(生菜)名称冲突
- 24. 如何避免依赖项的Rake任务名称冲突?
- 25. JXMapViewer的混搭例如
- 26. 我怎样才能避免使用类型名称类型
- 27. 我们应该避免变量的复数名称吗?
- 28. 为什么我的行名称被丢弃以及如何避免它?
- 29. 如何避免
- 30. PHP混搭问题
只是次要NIT:这样的功能当然可以选自C被称为++函数指针:外部的 “C” 空隙FOO(){printf的( “富\ n”); } int main(){ void(* f)(); f = foo; f(); } – 2009-02-07 23:03:43