2015-09-01 3 views
-2

Если я получаю различные выходы на разных компиляторах во время работы ниже программы:Получение различных выходных от различных компиляторов C

#include <stdio.h> 
void main() 
{ 
    struct s 
    { 
    int a; 
    char b; 
    } s1, s2; 

    int x = sizeof(s1); 
    printf("%d", x); 
} 

OUTPUT (Turbo C):

(int 2 + char 1 = 3) 

я получаю 3 Вот.

OUTPUT (блоки кода):

8 

Почему 8 выводится здесь?

+4

Есть много ответов, повторяющих 'sizeof (struct)', который учитывает заполнение так, что оно определено в реализации – Gopi

+0

@Prakash: возможно, 8 из 1 (char) плюс 4 (int) округлено до ближайшего 8. – halfer

ответ

0

Размер типовых типов C (кроме char и его вариантов 1) зависит от реализации, так же как и величина заполнения между элементами структуры.

+0

Просьба дать я эллобратный ответ. –

Смежные вопросы