Аргумент типа “энергозависимый символ *” является несовместимым с параметром типа “символ константы *”

У меня есть функция, прототип которой следующие:

void foo(const char * data);

В другом месте в моем коде, мне объявили глобальную переменную следующим образом

volatile char var[100];

Каждый раз, когда я пытаюсь сделать это:

foo(var);

Компилятор подбрасывает следующее сообщение об ошибке:

Аргумент типа "энергозависимый символ *" является несовместимым с параметром типа "символ константы *"

Почему имеет место это? Насколько я понимаю переменной в моей функции не позволяют изменить указатель или его содержание. Я понимаю что, потому что моя глобальная переменная энергозависима, она могла потенциально измениться в любое время, но видящий, поскольку совершенно законно иметь энергозависимую переменную константы, я не вижу, почему я получаю эту ошибку компилятора.

Спасибо

- AMR

5
задан Amr Bekhit 11 August 2010 в 12:38
поделиться