Questions tagged «name-mangling»




9
为什么不能对C函数进行名称修改?
我最近接受了一次采访,一个问题被问到extern "C"C ++代码中的用途是什么。我回答说它是在C ++代码中使用C函数,因为C不使用名称修饰。我被问到为什么C不使用名称修饰,老实说我无法回答。 我知道C ++编译器在编译函数时会给函数起一个特殊的名称,主要是因为我们可以在C ++中使用同名的重载函数,这些重载函数必须在编译时进行解析。在C语言中,函数的名称将保持不变,或者在其前面加上_。 我的查询是:允许C ++编译器也处理C函数怎么了?我本来以为编译器给它们起什么名字都没关系。我们在C和C ++中以相同的方式调用函数。
136 c++  c  name-mangling  extern-c 

13
取消std :: type_info :: name的结果
我目前正在研究一些日志记录代码,这些代码除其他事项外,应该打印有关调用函数的信息。这应该是相对容易的,标准C ++有一个type_info类。这包含类型标识符的类/函数/等的名称。但它被粉碎了。这不是很有用。即typeid(std::vector<int>).name()返回St6vectorIiSaIiEE。 有没有办法从中产生有用的东西?就像std::vector<int>上面的例子一样。如果它仅适用于非模板类,那也很好。 该解决方案应该适用于gcc,但是如果我可以移植的话会更好。它是用于日志记录的,因此不能关闭它并不是很重要,但是它对调试很有帮助。
93 c++  gcc  name-mangling 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.