Итак, у меня есть математический код, который объявляет тонну переменных с произвольным типом, чтобы можно было определить точность (double, quad и т. Д.). Для этого у меня есть файл заголовкаИспользование #define для установки типа переменных
input.h
PRECISION detg;
detg = 1.0+2;
Где input.h входит в основной файл, как
#include<math.h>
#include<stdio.h>
#define PRECISION double
int main(){
return 0;
}
Составлено с GCC testEquations.c -o тест
Но компиляция не удалась и дает ошибку
In file included from testEquations.c:16:0:
./GHG_Files/input.h:3:1: warning: data definition has no type or storage class
detg = 1.0+2;
^
./GHG_Files/input.h:3:1: warning: type defaults to ‘int’ in declaration of ‘detg’ [-Wimplicit-int]
./GHG_Files/input.h:3:1: error: conflicting types for ‘detg’
./GHG_Files/input.h:1:11: note: previous declaration of ‘detg’ was here
PRECISION detg;
Вопрос в том, почему PRECISION не заменяется двойным, как вы думаете, и должно быть причиной этой ошибки?
Где вы укажете номер? Input.h'? –
Замечание: лучше использовать 'typedef' для переменных типов, а не' # define'. – AntonH
Да, это звучит как работа для typedef – brianxautumn