2016-02-25 3 views
-2

Я написал программу на C, и я хочу использовать C++-библиотеку в этом коде, хотя я могу скомпилировать C в g ++, так как C++ построен в верхней части C. Однако, я не мог этого сделать, и основная ошибка заключалась в том, что в одной части кода я написал функцию для чтения данных из входного файла, перед основной функцией. Это хорошо работало в компиляторе C, но не в компиляторе Cpp. Ниже приведены некоторые из сообщений об ошибках, которые я получил, так что я хотел бы получить общие замечания и моменты, чтобы принять во внимание при использовании с и кастами взаимозаменяемыхКомпиляция программы C в компиляторе C++

error : ‘get_inputs’ was not declared in this scope 

error: use of parameter outside function body before ‘]’ token 
+1

Что вы хотите сказать? – MikeCAT

+0

Что делать, чтобы исправить эти ошибки, не должен компилятор C++ компилировать C ??? –

+0

Мы не можем исправить ошибки в коде, который мы не видим. –

ответ

1

После компиляции программы в C с предупреждением, такие как: 'bar' undefined; при условии ехЬегп возвращения INT

void foo() 
{ 
    bar(5); 
} 

int bar(int x) 
{ 
    return x*2; 
} 

Если вы хотите, чтобы скомпилировать в C++ вы должны объявить bar прежде чем использовать его:

int bar(int x); // forward declaration 

void foo() 
{ 
    bar(5); 
} 

int bar(int x) 
{ 
    return x*2; 
} 

Даже в C это хорошая практика, чтобы использовать прямые заявления и для того, чтобы все предупреждения компилятора, в противном случае ошибка в следующей программе проскальзывает:

void foo() 
{ 
    bar(); // calling bar without argument.... 
} 

int bar(int x) 
{ 
    return x*2; // ... will result in an undefined value for x here 
} 
+0

Он отлично компилируется. Как вы уже сказали, я не декларировал переменные перед их использованием в функции. Я очень ценю ваш ответ –

Смежные вопросы