sizeof

В C++, sizeof('a') == sizeof(char) == 1. Это имеет интуитивный смысл, так как 'a' - это символьный литерал, а sizeof(char) == 1 Как определено стандартом. В C однако, sizeof('a') == sizeof(int). То есть, похоже, что c символьные литералы на самом деле являются целыми числами. Кто-нибудь знает почему? Я могу ...

Я не могу найти ответ в нормативной документации. Это sizeof(bool) всегда 1 байт, или это определенная реализация?...

известно, что sizeof - это оператор, используемый для вычисления размера любого типа данных и выражения, и когда операнд является выражением, круглые скобки могут быть опущены. int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } ...

есть ли машины (или компиляторы), где sizeof(char) != 1? тут стандарт C99 говорит, что sizeof(char) при стандартном соблюдении реализация должна быть ровно 1? Если это так, пожалуйста, дайте мне номер раздела и цитату. обновление: Если у меня есть машина (CPU), которая не может адресовать байты (минимальное...

почему sizeof является оператором, а не функцией? какое свойство необходимо для квалификации в качестве оператора?...

ниже не удается скомпилировать: typedef int arr[10]; int main(void) { return sizeof arr; } sizeof.c:3: error: expected expression before ‘arr’ но если я изменю его на sizeof(arr); все нормально. Зачем?...

Я не понимаю, почему sizeof оператор выдает следующие результаты: sizeof( 2500000000 ) // => 8 (8 bytes). ... он возвращает 8, и когда я делаю следующее: sizeof( 1250000000 * 2 ) // => 4 (4 bytes). ... он возвращает 4, а не 8 (что я ожидал). Может кто-нибудь прояснить, как sizeof определяет размер...

учитывая следующую программу, #include <iostream> using namespace std; void foo( char a[100] ) { cout << "foo() " << sizeof( a ) << endl; } int main() { char bar[100] = { 0 }; cout << "main() " << sizeof( bar ) << endl; foo( bar ); return 0; } ...

Возможные Дубликаты: размер int, long, etcзависит ли размер int от компилятора и / или процессора?что определяет размер целого числа? я использую 64-bit машины. $ uname -m x86_64 $ file /usr/bin/file /usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared li...

этот вопрос уже есть ответ здесь: Загадка (в C) 4 ответы Что не так со следующим кодом C? [дубликат] 3 ответы ...