Я ищу огромную старую C программу и конвертирую ее в C ++ (что я новичок).
Существует множество сложных взломов препроцессоров, связанных с тем, что программа должна работать на разных платформах в разных конфигурациях.
В одном файле (назовите его file1.c
) я звоню functionA()
.
И в другом файле (назовите его file2.c
) у меня есть определение из functionA()
.
К сожалению, точный тип функции определяется набором макросов, созданных изумительным количеством способов.
Теперь компоновщик жалуется, что:
функция A - это неразрешенный внешний символ.
Я подозреваю, что проблема в том, что прототип, как видно из file1.c, немного отличается от истинного определения функции, как это видно из file2.c.
Существует множество возможностей для тонких различий из-за несоответствия между _cdecl
и fastcall
, а также между и без __forceinline
.
Есть ли какой-нибудь способ показать точно , что компилятор считает типом functionA()
, как замечено file1.c
в отличие от file2.c
?