C # включает и константа проблема - PullRequest
0 голосов
/ 23 августа 2011

У меня есть эти два файла, functions.c и constants.h.

functions.c имеет эту строку:

#include "constants.h"

Однако, когда я пытаюсь скомпилировать functions.c, функции functions.c не могут найти эти константы из constants.c. Это константы константного типа. Я знаю, что это очень дурацкая проблема, но я не знаю решения.

EDIT: Содержание файлов (некоторые из них):

functions.c:

#include <string.h>
#include "Directivas.h"
...
int hayDirectivaInclude(char* buffer) {
    if (strncmp(include, buffer, longInclude) == 0)
        return 1;
    else
        return 0;
}

constants.h:

const char include[10] = { '#', 'i', 'n', 'c', 'l', 'u', 'd', 'e', ' ', 0 };
const int longInclude = 9;

Ответы [ 3 ]

0 голосов
/ 23 августа 2011

Ваш constants.h должен содержать extern ссылки на константы.

Например, предположим, что у вас было: const char* COOL_STRING = "Erandros is cool." в constants.c. Чтобы functions.c знал об этой строке, вы должны сообщить ей о ее существовании, написав где-нибудь extern char* COOL_STRING;, например, constants.h

0 голосов
/ 23 августа 2011

см. Предположим, что вы объявили некоторую функцию в constants.h, и ее определение находится в constants.c, тогда, когда вы компилируете function.c ", просто включив constants.h, не будет включать определение этих функций.ошибка ... нужно скомпилировать оба файла .c вместе.

0 голосов
/ 23 августа 2011

Объявлены ли константы в constants.h?Вы должны хотя бы объявить их там, иначе компилятор не узнает, что они существуют при обработке functions.c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...