1 / 1 / 1
Регистрация: 24.09.2012
Сообщений: 117
1

Возращение типа данных без sizeof

08.01.2013, 14:02. Показов 4196. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно описать функцию sizeof, как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2013, 14:02
Ответы с готовыми решениями:

Как вывести размер типа данных в байтах не используя функцию sizeof?
Всем привет, не подскажете как вывести размер типа данных в байтах не используя функцию sizeof?

Sizeof: как правильно найти размер авторского типа?
#include <stdio.h> using namespace std; class kl { }; ...

Является ли оператор sizeof синтаксическим сахаром над System.Runtime.InteropServices.Marshal.SizeOf?
Является ли оператор sizeof синтаксическим сахаром над...

Sizeof(.) или constexpr size_t tmp = sizeof(.)
sizeof(...) или constexpr size_t tmp = sizeof(...) Как лучше с точки зрения производительности?...

5
-4 / 0 / 1
Регистрация: 22.12.2011
Сообщений: 215
08.01.2013, 14:09 2
Оператор sizeof может послужить в качестве оператора времени компиляции, используемого для определения размера (в байтах) переменной или типа данных, включая классы, структуры и объеденения. При использовании вместе с типом имя типа должно быть заключено в круглые скобки. Например, следующий пример в обоих случаях выдаст число 4.
[CPPint x;
cout << sizeof x;
cout << sizeof (int);][/CPP]

Добавлено через 51 секунду
C++
1
2
3
 int x;
cout << sizeof x;
cout << sizeof (int);
Добавлено через 3 минуты
размер типов данных в байтах:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
 
 void main( void )
 {
 cout << " (unsigned)int = " << sizeof(int) << endl;
 cout << " (unsigned)short = " << sizeof(short) << endl;
 cout << " (unsigned)char = " << sizeof(char) << endl;
 cout << " (unsigned)float = " << sizeof(float) << endl;
 cout << " (unsigned)double = " << sizeof(double) << endl;
 cout << " (unsigned)long = " << sizeof(long) << endl;
 cout << " (unsigned)long double = " << sizeof(long double) << endl;
 }
0
1 / 1 / 1
Регистрация: 24.09.2012
Сообщений: 117
08.01.2013, 14:23  [ТС] 3
мне требуется описать саму функцию не используя sizeof
в вашем примере как минимум она используется
или я неправ?
0
-4 / 0 / 1
Регистрация: 22.12.2011
Сообщений: 215
08.01.2013, 14:38 4
http://www.redov.ru/kompyutery... _c/p18.php

Добавлено через 2 минуты
кстати какая версия с++ вам интересна!!!

Добавлено через 5 минут
Функция malloc захватывает блок памяти по крайней мере не
меньшей, чем из size байтов. (Блок может быть больше, чем size
байтов, принадлежащих пространству, которое требуется для вырав-
нивания и для поддержания информации).

Возвращаемое значение.
0
1 / 1 / 1
Регистрация: 24.09.2012
Сообщений: 117
08.01.2013, 14:38  [ТС] 5
мне нужно в си)
0
-4 / 0 / 1
Регистрация: 22.12.2011
Сообщений: 215
08.01.2013, 15:02 6
Размер в байтах участка памяти, требуемого для хранения значения типа TYPE, можно узнать при помощи операции sizeof(TYPE), а размер переменной - при помощи sizeof(var). Всегда выполняется sizeof(char)==1. В некоторых машинах адреса переменных (а также агрегатов данных массивов и структур) кратны sizeof(int) или sizeof(double) - это так называемое "выравнивание (alignment) данных на границу типа int". Это позволяет делать доступ к данным более быстрым (аппаратура работает эффективнее).

Язык Си предоставляет нам средство для работы с адресами данных - указатели (pointer)| -. Указатель физически - это адрес некоторой переменной ("указуемой" переменной). Отличие указателей от машинных адресов состоит в том, что указатель может содержать адреса данных только определенного типа. Указатель ptr, который может указывать на данные типа TYPE, описывается так:
[C][ TYPE var; /* переменная */
TYPE *ptr; /* объявление ук-ля */
ptr = & var;/C]
В данном случае мы занесли в указательную переменную ptr адрес переменной var. Будем говорить, что указатель ptr указывает на переменную var (или, что ptr установлен на var). Пусть TYPE равно int, и у нас есть массив и указатели:
C
1
2
 int  array[LENGTH], value;
    int *ptr, *ptr1;
0
08.01.2013, 15:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2013, 15:02
Помогаю со студенческими работами здесь

Что обозначает строка вида sizeof(data)/sizeof(data[0])?
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; void bubble_sort(float *data, int size) { int i,j; ...

Fwrite (buffer , sizeof(char), sizeof(buffer), pFile)
как записать часть массива чаров? допустим у нас arr; мне надо записать с позиции массива 500 до...

Использование поля типа "Вложение" в форме без источника данных
Доброго времени суток всем! Подскажите пожалуйста, можно ли каким то образом использовать в форме...

Marshal.SizeOf и sizeof
чем отличаются Marshal.SizeOf и sizeof? я просто почему то привык пользоваться Marshal.SizeOf, так...

Как преобразовать число типа int в строку типа string без методов-конвертов на C#?
В общем, все что выше написано. Пишу в Visual Studio на C#. Преобразовать без конвертирования,...

Приведение типа без имени типа?
У меня есть данные о типе, полученные через typeof, как можно приводить к типу от которого был...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru