Результаты поиска по запросу "integer-promotion"

2 ответа

Целочисленная раскрутка с оператором <<

2 ответа

ИМХО это просто добавляет накладных расходов, но мнения могут отличаться ...

ужно устранить предупреждения gcc -Wconversion. Например typedef unsigned short uint16_t; uint16_t a = 1; uint16_t b = 2; b += a;дает warning: conversion to 'uint16_t {aka short unsigned int}' from 'int' may alter its value [-Wconversion] b += ...

0 ответов

@Roman - см. Отредактированный ответ.

лал простую программу и скомпилировал ее с помощью GCC 4.4 / 4.5 следующим образом: int main () { char u = 10; char x = 'x'; char i = u + x; return 0; }g ++ -c -Wconversion a.cpp И у меня есть следующее: a.cpp: In function ‘int main()’: ...

ТОП публикаций

2 ответа

Bitshift и целочисленное продвижение?

Обычно C требует, чтобы операнды бинарного оператора были переведены в тип операнда более высокого ранга. Это можно использовать, чтобы избежать заполнения к...

5 ответов

Тип преобразования - неподписанный в подписанный int / char

0 ответов

 не должно иметь typedef для него.

давнего времени я считал, что решение большинства разработчиков и поставщиков систем должно быть простым.int 32-битные даже на 64-битных машинах своего рода целесообразные бородавки. С современными типами фиксированных размеров C99 (int32_t а ...

1 ответ

В Java почему префикс приращения или декремента оператор не требует приведения в случае байта

Предположим, у меня есть следующий фрагмент кода

5 ответов

Тип преобразования - неподписанный в подписанный int / char

Я попытался выполнить следующую программу: #include <stdio.h> int main() { signed char a = -5; unsigned char b = -5; int c = -5; unsigned int d = -5; if (a == b) printf("\r\n char is SAME!!!"); else printf("\r\n char is DIFF!!!"); if (c == d) ...

3 ответа

Обычные арифметические преобразования в C: каково обоснование этого конкретного правила

От K & R C Во-первых, если один из операндов long long, другой преобразуется в long double.В противном случае, если один из операндов является двойным, другой преобразуется в двойной.В противном случае, если один из операндов является float, ...

5 ответов

@Mayank: вы могли бы отредактировать приведенный выше ответ, чтобы сделать его более точным и общеприменимым

unsigned char a, b; b = something(); a = ~b;ческий анализатор жаловался на усечение в последней строке, вероятно потому, чтоb повышается до int до того, как его биты перевернуты, и результат будет иметь тип int. Меня интересует только последний ...