Подсмотрел тут http://www.linux.org.ru/view-message.jsp?msgid=1897145 интересное решение по преобразованию макросов и числового в строковый формат, теперь вот мучаюсь :-)
Макросы в программе сейчас используются для определения размеров массивов, соответственно в fscanf выражения нужно вставлять строковое значение числового макроса за вычетом единицы (согласно man на fscanf ширина поля задется без завершающего '\0').
Нерабочий код (на примере того по ссылке):
#define MAXBETASIZE 1024
#define _s(a) #a
#define _string(a) _s(a)
...
char beta[MAXBETASIZE];
sscanf(bigstring, "%" _string(MAXBETASIZE-1) "s", &beta);
Единицу в последнем случае он не вычитает и ругается при сборке, можно ли препроцессор заставить вычитать её?
Ответ на:
комментарий
от mky
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Макросы (2012)
- Форум Макрос (2018)
- Форум макросы (2001)
- Форум Макрос раскрывает код макроса (2018)
- Форум Хитрый макрос (2012)
- Форум Пример макроса (2019)
- Форум С макросы (2008)
- Форум nasm+макросы (2008)
- Форум написать макрос (2008)
- Форум функции & макросы (2001)