Форум программистов, компьютерный форум, киберфорум
Наши страницы
C (Си)
Войти
Регистрация
Восстановить пароль
 
Alex_Sava
0 / 0 / 1
Регистрация: 31.07.2014
Сообщений: 84
#1

Макросы для переносимых типов

21.12.2015, 21:58. Просмотров 300. Ответов 3
Метки нет (Все метки)

Всем привет)
У меня наверно глупый вопрос но все же: почему при указании SCNd8 происходит ошибка?С SCNd16 все ок
Заранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2015, 21:58
Ответы с готовыми решениями:

Написать макросы для вывода массива и нахождения суммы его элементов
Требуется написать используя директиву #define два макроса, на вход подаётся...

Для чего необходимо переопределение стандартных типов?
Добрый вечер, часто сталкиваюсь с переопределением имен стандартных типов...

Для всех базовых типов определить размер в байтах
Доброе всем времени суток. задали лабораторную на си++, но проблема в том что...

#define: макросы
Доброго времени суток. Веду разбирательство с директивами препроцессора и тут...

Как работают макросы?
В своей книге Керниган и Ритчи приводят в пример такой макрос: #define max(A,...

3
sharpey
339 / 134 / 32
Регистрация: 21.09.2008
Сообщений: 445
21.12.2015, 22:20 #2
Пример где? И какая ошибка точно происходит?
0
Alex_Sava
0 / 0 / 1
Регистрация: 31.07.2014
Сообщений: 84
21.12.2015, 22:43  [ТС] #3
sharpey,
C
1
2
3
4
5
6
7
8
#include <stdio.h>
#include <inttypes.h>
int main(){
    int16_t x;
    printf("Input 16-bit number: ");
    scanf("%"SCNd16,x);
    printf("Your number: %"PRId16,x);
}
- все ок
C
1
2
3
4
5
6
7
8
#include <stdio.h>
#include <inttypes.h>
int main(){
    int8_t x;
    printf("Input 8-bit number: ");
    scanf("%"SCNd8,x);
    printf("Your number: %"PRId8,x);
}
- ошибка error: expected ')' before 'SCNd8'
0
sharpey
339 / 134 / 32
Регистрация: 21.09.2008
Сообщений: 445
21.12.2015, 23:25 #4
В 64-битной FreeBSD 10 штатным компилятором clang при указании опции -std=c99 второй пример собрался и отработал без проблем. Mingw32 5.1 к сожалению, не смог переварить с такой же опцией. Здесь отмечают, что это связано с системной библиотекой msvcrt.dll, которую вызывает стандартная библиотека Си.

Ваш пример я бы привел к такому "каноничному" виду:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <inttypes.h>
 
int main(int argc, char **argv)
{
  int8_t x;
 
  printf("Input 8-bit number: ");
  scanf("%"SCNd8, &x);
  printf("Your number: %"PRId8"\n", x);
  return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2015, 23:25

Макросы и переменное количество аргументов
Доброго дня! В двух словах, есть в цикле функция принимающая переменное...

Variadic макросы. Гармоническое среднее двух чисел
задание: Гармоническое среднее двух чисел получают вычислением среднего от...

Использование MinGW для создания переносимых программ
Здравствуйте, поговорим про компиляцию?) Я хочу использовать MinGW для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru