C ++ (в отличие от C) откажется делать сомнительные предположения о сигнатуре функций, для которых он не видел объявления, и компиляция завершится неудачно с сообщением об ошибке.Если вы не получили ошибку, то какой-то заголовок выбирает объявление для этой функции.Если вы не можете его найти, попробуйте запустить только этап препроцессора (например, для GCC вы бы использовали g++ -E
) и проверить вывод, чтобы увидеть объявление ... ваш компилятор может оставлять комментарии о том, какой файл содержит битыкод, который может быть полезен для понимания ситуации.
Например, если _general.cpp включает в себя _general.h, который включает в себя mex.h, то это работоспособно, и нет необходимости включать его непосредственно из _general.cpp.Но если он может быть удален из _general.h, так как он нужен только для реализации «общего», то это намного лучше.
Если какой-то другой код, скажем, «libraryX», использует mex.h для этоговнутренним потребностям, не раскрывая функциональность, связанную с mex, через ее общедоступный API, поэтому лучше НЕ предполагать, что он будет продолжать включать mex.h для вас и включать его самостоятельно.