Непонятные результаты
Вчера случайно заметил вот что
на vc++ 6.0 написал код Код:
#include <iostream.h> http://img.uz/thumbs/619802vc60_rez.JPG и проверил на TC++ 3.0 результат http://img.uz/thumbs/428696tc30_rez.JPG Плз, обьясните - почему на vc++ size int равно на 4 а TC++ 3.0 на 2, если кто то в курсе, искал в литературах не смог найти ничего |
C++ никак не фиксирует размеры целых типов, они зависят от архитектуры компьютера. TC++ работает в 16-битном окружении DOS, VC++ — в 32-битном Windows, вот и всё.
В стандарте C++ (ISO/IEC 14882:2003) записано следующее: Цитата:
Таким образом, int должен иметь размер, с которым процессор данной архитектуры работает наиболее эффективно, а о размерах остальных типов утверждается лишь то, что: sizeof(char) ≤ sizeof(short) ≤ sizeof(int) ≤ sizeof(long) Размеры типов — это то, к чему следует относиться очень осторожно при переносе программ на другую архитектуру, и делать минимум предположений. Например, Visual C++ на x86-64 имеет sizeof(int) = sizeof(long) = 4 из соображений обратной совместимости, но при этом sizeof(T*) = 8 — глаз да глаз нужен :-) |
В C++ размер числовых типов зависит от компилятора. Соответственно, для 32-х битных сред (Visual C++) размер int - 4 байта (32 бита), для 16-битных (DOS, Turbo C++) - 2 байта. С этой странички на Википедии:
Цитата:
Оффтоп: Пока писал дали более верный и развёрнутый ответ :) |
Просто я раньше уделял внимания на размерах типов в С++
По точнее 2004 году преподавал по краткому курсу С++ если не ошибаюсь там было всего 14 часов. И в этом курсе студенты изучали только поверхность языка: Введения, типи, оператор условия, циклы, функции, работа с массивами(В этом курсе не было ни слово о структурах, указателях, классах - но мы знаем основа С++ это классы). И я сама был новичком - 2002 коротко ознакомился структурой программы на С++. Вообщето в эти время писал проги на паскале или на Делфи. В этом году мне поручили вести занятия по полному курсу С++. Вчера случайно написал несколько проги для примера(по тему указатели). Я знал что указатели (не смотря его типу) занимает одно и то же память, по точнее равно к типу int. И в это же время заметил |
Не хочу открывать новую тему, поэтому пишу здесь:
нужен программист, который напишет на С++ программу для сжатия аудиоинформации. Оплата гарантируется. Предложения в личку. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Понятное дело! Есть.
|
Текущее время: 05:04. Часовой пояс GMT +5. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
OOO «Единый интегратор UZINFOCOM»