Язык C: примеры неявного преобразования типов


Одна из самых неприятных вещей в языке C— это неявное преобразование типов. Если вы не будете следить за этим — у вас будут большие проблемы. Попробуйте запустить этот код, чтобы узреть возможные траблы:

#include <stdio.h>

int main (void)
{

int x = -100;

printf ("signed int -100 will look as unsigned like this: %u\n", x);

unsigned int y = 10U;

long long int z = x + y;   // when we have singned and unsigned
                           // C transfer signed to unsigned by default
                           // so -100 will become 4294967196

printf ("x + y = %lld\n", z);

char c = 'Я';  // char is !signed! integer by default
printf ("<R> as integer = %d\n", c);

int d = (int)c * 10;

printf("d = %d\n", d);

getchar();

}

 


Запись опубликована в рубрике С (Си). Добавьте в закладки постоянную ссылку.

Добавить комментарий

🇬🇧 Attention! Comments with URLs are not allowed.
🇷🇺 Комментарии со ссылками удаляются автоматически.