У меня один вопрос со смешением C-строки и Fortran-строки в одном файле.
Предположим, я играю со строкой имени с фиксированной длиной 9, я определяю макрос длины как
#define NAME_LEN 9
в файле .c.
Существует существующая функция fortran, назовем ее fortran_function(char* name)
Теперь мне нужно вызвать эту функцию fortran в функции ac, назовем ее
c_function(char name[]) {
fortran_function(name)
}
Теперь проблема в том, как мне объявить сигнатуру c_function?
c_function(char name[])
c_function(char name[NAME_LEN +1])
или
c_function(char name[NAME_LEN])
В каких ситуациях мне следует использовать 9 в качестве длины имени или 10?
Насколько я понимаю, до тех пор, пока вы передали нулевую строку с 9 символами в функцию c_, все объявления верны.Это правильно?
Любая другая проблема должна быть поставлена здесь?Есть потенциальные ошибки?