crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

vankleef
  опции профиля:
сообщение 4.6.2011, 23:35
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 21.10.2010
Пользователь №: 2134

Спасибо сказали: 9 раз(а)




Репутация:   1  


есть вот такой код
int l=10000000;
cout<<l+1;

компилится все отлично, без ошибок.
но ведь значение int'a в 10000000 превосходит его предел как в знаковом, так и в беззнаковом варианте.
так вот почему это работает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 5.6.2011, 10:17
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Не забывайте про 64-битные платформы. :)
Цитата
$ cat a.cpp
#include <iostream>

int main( int, char ** )
{
std::cout << "sizeof char = " << sizeof( char ) << std::endl;
std::cout << "sizeof short = " << sizeof( short ) << std::endl;
std::cout << "sizeof int = " << sizeof( int ) << std::endl;
std::cout << "sizeof long = " << sizeof( long ) << std::endl;

return 0;
}
$ g++ a.cpp
$ ./a.out
sizeof char = 1
sizeof short = 2
sizeof int = 4
sizeof long = 8
$ g++ -v
Используются внутренние спецификации.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Целевая архитектура: x86_64-unknown-linux-gnu
Параметры конфигурации: /build/src/gcc-4.6-20110513/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libstdcxx-pch --enable-checking=release
Модель многопоточности: posix
gcc версия 4.6.0 20110513 (prerelease) (GCC)

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 29.6.2025, 5:11