Я хотел определить макрос, как -Как проверить переменный аргумент __VA_ARGS__?
#define log(lognumber,...) logreport(lognumber,__VA_ARGS__)
Я хотел проверить случай исключения для пользователя __VA_ARGS__
этих аргументов может проходить, когда этот пользователь вызывает журнал() .please предоставить мне случай исключения для __VA_ARGS__
.
[обновление от комментариев:]
Я имею в виду, я хотел написать LogReport таким образом, что он должен напечатать определенное число к ошибке, что я уже определил.
Принимая пример, как если бы я передаю
log(NOTE,"%s",str)
, то в этом случае он печатает конкретные идентификаторы, которые я присвоенные в другом файле, как этот msgid %s, msdstr %s (10223)
, но пользователь использует
log(NOTE,"DIRECT STRING")
это для этой строки требуется [???]. Так как же я могу проверить, что если пользователь проходит аргумент, таким образом
log(NOTE,"%s",str)
или
log(NOTE,"direct string")
таким образом в функции LogReport?
Что вы подразумеваете под «случаем исключения»? Чего именно вы пытаетесь достичь/защитить? – cnicutar
Просто напишите код в функции logreport, чтобы выполнить проверку с использованием стандартных макросов 'va_start',' va_arg' и 'va_end' для работы с переменными args. По крайней мере, это ответ на то, о чем я думаю, вы спрашиваете. Но ваш вопрос не очень ясен: «случай исключения для' __VA_ARGS__' »не является термином, который имеет смысл, не объясняя, что это значит. – kaylum
Если я прочитаю это правильно (и я не уверен, что знаю), вас может заинтересовать http://stackoverflow.com/questions/2124339/c-preprocessor-va-args-number-of-arguments – Wintermute