Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Спецификаторы функции printf


Автор: savigm 17.4.2009, 18:25
В исодниках на Си обнаружил функцию printf, в которой пытались вывести битовое поле, вот аналогичный вызов:
Код

printf ("Bit field: %04b\n", val);

Однако вместо значений выводятся пробелы. Кроме того описание спецификатора %b я не обнаружил даже в стандарте ISO C, при это программа без ошибок и предупреждений компилируется.
У кого какие идеи по этому вопросу?

Автор: cutwater 17.4.2009, 18:40
Какой компилятор, версия, ос, опции компиляции?

У меня лично gcc версия 4.3.3 (Ubuntu 4.3.3-5ubuntu4)

Выдает предупреждение 
Код

bit.c: В функции ‘main’:
bit.c:6: предупреждение: неопознанный символ преобразования ‘b’ в формате

Как C так и С++.

И выводит исходную строку.

Автор: zim22 17.4.2009, 18:56
msvc 2008 в консоль выводит:
Код

Bit field: b

Автор: inside_pointer 18.4.2009, 03:30
zim22, да ты в стандарте найди это, только не в майкрософтовском стандарте, потому что таких нет, а в стандарте языка, к которому майкрософт никакого отношения не имеет

Автор: J0ker 18.4.2009, 07:32
Цитата(cutwater @  17.4.2009,  18:40 Найти цитируемый пост)
Какой компилятор, версия, ос, опции компиляции?

при чем тут компилятор-то, а тем более ось
раз в стандарте нет, значит и вопроса такого нет - нет такого спецификатора

Автор: cutwater 18.4.2009, 08:52
Нестандартные расширения еще никто не отменял как бы. Да и мало ли чего в коде привидится.

Автор: J0ker 18.4.2009, 20:43
как показывает практика, отступление от стандарта жестоко карается анафемой вашими приемниками  smile 

Автор: azesmcar 20.4.2009, 10:14
Цитата

как показывает практика, отступление от стандарта жестоко карается анафемой вашими приемниками  smile  

Ну не то чтобы всегда, если к примеру пишите только под Windows и код предназначен для Visual Studio - можно и написать..Для кого-то же пишут эти дополнения smile 

Автор: xvr 20.4.2009, 13:50
Судя по спецификации это код с какого то микроконтролера - обычно там используются разные битово ориентированные расширения.
Так что никакая VS и Windows здесь никаким боком не при чем  smile 
И со стандартом там поступают несколько фривольно  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)