Ошибка: ожидается "," или "..." перед "для" в #define

0

У меня ошибка в #define, в которой я хочу определить цикл таким образом:

#define loop                for (;;)

Но при компиляции я получаю ошибку

util.h:39:29: error: expected ', or '... before 'for #define loop for (;;)

Любая идея, почему это может быть?

  • 3
    Пожалуйста, покажите вызов макроса
  • 9
    Я просто выкладываю это, но этот макрос, вероятно, ужасная идея.
Показать ещё 8 комментариев
Теги:
compilation

2 ответа

1
Лучший ответ

Ваш вопрос не содержит достаточной информации, чтобы найти проблему. Вероятно, проблема связана с конфликтом с чем-то другим, возможно, еще одним #define в вашем коде. Само сообщение об ошибке указывает, что компилятор считает, что он анализирует объявление списка аргументов, когда он читает токен for.

Вам нужно будет опубликовать небольшую, полную, автономную программу, демонстрирующую проблему.


Серьезно, каждый, кто обнаруживает #define в классе программирования C, думает, что они действительно умны и теперь могут создавать свои собственные языковые конструкции. В каждом случае это действительно плохая идея, потому что это делает код намного сложнее читать с нулевой реальной выгодой. Если вам нужен бесконечный цикл, просто напишите for(;;) и сделайте с ним.

  • 0
    ты где прав, это было столкновение с другим #define :)
  • 0
    Еще одна причина не писать такие макросы. Я упоминал, что C ++ делает все возможное, чтобы вы не нуждались в #define ?
Показать ещё 2 комментария
1

Я думаю, что приведенная ниже ссылка сделает работу для вас. Http://www.cplusplus.com/forum/lounge/33524/

  • 0
    Эти макросы заставляют меня съеживаться. Любое из потенциально полезных может быть сделано так же хорошо с функциями, за исключением того, что вы не можете ввести глобальное имя, которое вы никогда не сможете использовать снова.
  • 0
    спасибо, действительно полезный источник :) .. но я уже нашел проблему, это было столкновение с другим #define

Ещё вопросы

Сообщество Overcoder
Наверх
Меню