2013-05-21 7 views
-8

Я знаю, что такое указатель, но во время некоторых упражнений по кодированию у меня была опечатка, а вместо int**int.Что означает * int?

Я понимаю, что это неправильно, но означает ли это что-то в C (например, синтаксически корректно)? Это статическая семантика? это просто неопределенный?

Не удалось выяснить это с помощью предупреждений компилятора.

Edit: (соответствующие предупреждения компилятора)

void input(*int ,*int); 

: 10: ошибка: ожидается, первичное выражение, прежде чем "ИНТ" : 10: ошибка: ожидаются первичное выражение до "ИНТА" : 10: ошибка : список выражений инициализатора, обработанный как составное выражение

+4

Просьба поделиться предупреждениями компилятора. –

+3

Это будет зависеть от контекста. Отправьте код. –

+0

Я вполне уверен, что это недопустимый синтаксис. – Joel

ответ

6

Нет, это синтаксическая ошибка. Он не может быть частью умножения, поскольку не может быть идентификатор с именем ключевого слова.

Единственный способ сделать это действительная часть программы C является

  • как часть строки буквального
  • как часть многобайтовом характера постоянной
  • как часть комментария
  • , когда int - это макрос, расширяющийся до чего-то еще, что делает его действительным
  • в пределах #ifdef 'ed out code segment
  • что-то еще я забыл
+1

Вы можете сделать это частью неиспользуемого макроса: '#define UNUSED39898439854389 * int' – chris

+0

@Chris +1 Righto! Это весело. – Jens

Смежные вопросы