Как сделать так чтобы он не ругался на то что такая та параменная не используется, хотя на самом еделе она используется? Давно волнует этот вопрос.
Отключить данный warning в настройках. В Delphi на этот случай есть ещё и спец. директивы компилятору, но как они называются в Си - не в курсе.
К слову: в 2005-м С++ есть тоже странная фишка. Вот такой код вызывает "not used" предупреждение: Код (Text): void foo () { int a; } А вот такой не вызывает: Код (Text): void foo () { CString a; } Надо полагать, что такое происходит из-за того, что CString - это шаблон.
AsmGuru62 Возможен также вариант, что такое происходит из-за того, что CString - это класс с непустым конструктором/деструктором. Смотрите: Код (Text): void Calculate1000000DigitsOfNumberPi() { CWaitCursor wc; ... // здесь идут выкладки, занимающие много времени и не использующие wc } CWaitCursor - это MFC-класс, конструктор которого устанавливает курсор в форме песочных часов, а деструктор восстанавливает стандартный курсор. Таким образом, пока работает функция, курсор будет иметь форму песочных часов. И фактически объявление "CWaitCursor wc;" играет важную роль. Но формально wc не используется. Вот из-за того, что возможны такие приколы, компилятор и не выдаёт предупреждения.
diamond Все верно. Объект пользовательского типа уже сам по себе несет функциональность, а это значит что он не "not used"
Nero_n И здесь все правильно. Вообще, все это какие-то детские примеры уровня преподавателя информатики в сельской школе. Читайте Стандарт, большинство вопросов отпадут сами собой.
Nero_n Вообще-то в таком случае может исполняться несколько инструкций (в зависимости от компилера). Например значение a может быть занесено в стэк, либо в регистр (либо одновременно туда и туда)... короче, это тоже не выход, если хочешь избавиться от предупреждений компилятора. NoName Читайте мануал для компилера и настраивайте...
Обычно пишут Код (Text): void foo(void) { int a; (void)a; } хотя лично я отключаю предупреждение для нужной функции. В Borland по-моему так: Код (Text): #pragma argsused void foo(void) { int a; } Прагма влияет только на следующую за ней функцию и отключает предупреждение о неиспользованных переменных.