[英]Using (ugly) C code in C++ with extern “C”
我在編寫難看的舊C代碼時遇到了一些問題。 我想使用C ++編譯器並使用部分舊代碼。
頭文件
extern "C"{
int header();
}
頭文件
#include "header.h"
int header(){
const int i=20;
int *ptr = &i;
}
這是使用帶有警告的gcc(4.9.3)進行編譯的(沒有extern“ C”),但是在g ++中存在錯誤:“從'const int *'到'int *'的無效轉換[-fpermissive]”
我對這段代碼不是直接感興趣,但是想知道是否有辦法用C ++編譯器來編譯任何有效的C代碼? (這只是一個示例,它在C中“起作用”,但在C ++中不起作用,因為真正的問題是使用gcc而不是g ++進行編譯)
您有兩種選擇:
extern "C"
僅使C ++編譯器在調用函數時使用C函數名。 如果選擇使用C ++編譯器編譯這些函數,則不會使這些函數實際使用C規則進行編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.