lqp - size_t
April 9th, 2016
06:08 am

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
size_t
Вопрос к знатокам этикета "современного си".

Кошерно ли использовать тип size_t для любых переменных которые суть индексы массивов, даже если они никогда и близко не стояли рядом с alloc и sizeof и если массив который они адресуют состоит совсем не из байтов, а из, скажем, увесистых структур? Если нет, то что тут принято использовать?

Tags:

(15 comments | Leave a comment)

Comments
 
[User Picture]
From:[info]ded_mitya
Date:April 9th, 2016 - 01:16 am
(Link)
Я size_t вообще не использую, но мой этикет на С сформировался
еще во времена Борланда.
From:[info]lqp
Date:April 9th, 2016 - 01:27 am
(Link)
если его совсем не использовать, будет куча ворнингов.
[User Picture]
From:[info]ded_mitya
Date:April 9th, 2016 - 01:29 am
(Link)
А компилятор какой?
From:[info]lqp
Date:April 9th, 2016 - 10:56 am
(Link)
GCC 5. Но дело не в компиляторе, а в том что в GLIBC у кучи функций параметры имеют тип size_t
[User Picture]
From:[info]ded_mitya
Date:April 9th, 2016 - 06:09 pm
(Link)
size_t это вообще не typedef чей-нибудь? Например:

http://www.cplusplus.com/reference/cstring/size_t/

Я пользовался GCC (очень давно, лет 7 назад), и сравнительно недавно
Visual Studio, 13м и 15м. Ни один из них мне ворнингов не выкидывал.
В коде, который недавно был прдметом обсуждения у меня, есть
такое:

basis = (double*)calloc((unsigned long)FN*PowersEnd, sizeof(double));

Компилируется чисто.
From:[info]lqp
Date:April 9th, 2016 - 06:56 pm
(Link)
на x86 size_t это unsigned int. Идея в том, чтобы это зависело от платформы.
[User Picture]
From:[info]ded_mitya
Date:April 9th, 2016 - 07:10 pm
(Link)
Интересная мысль.
Когда компилировал в 32-битный код (Win32), выяснил например,
что unsigned int и unsigned long оба по 4 байта. не то что б
это большое открытие, я о таких материях не задумывался.

From:(Anonymous)
Date:April 11th, 2016 - 01:43 am
(Link)
Учёный на говне печёный. Не задумывался.
[User Picture]
From:[info]ded_mitya
Date:April 11th, 2016 - 02:38 am
(Link)
Когда меня заинтересует мнение всякого хуйла по
какому-нибудь вопросу, я специально напишу об этом.
Никуда не отходи от монитора, сиди и жди.
From:(Anonymous)
Date:April 16th, 2016 - 02:53 pm
(Link)
Щито? Тебе не заинтересует , учёный , или заинтересует. Ты азиатский носопыркин учись читать и выполнять простые команды. Написано современный Си а ты со своим турбо боландом лезешь .
[User Picture]
From:[info]ded_mitya
Date:April 16th, 2016 - 11:57 pm
(Link)
Иди в медпункт, выпей успокоительного, потом вернешься и доложишь.
Потом дам следующее задание.
From:(Anonymous)
Date:April 9th, 2016 - 05:10 pm
(Link)
Тупой жидок хахаха
From:[info]tzirechnoy.livejournal.com
Date:April 9th, 2016 - 09:59 am
(Link)
1) Кошэрно.
2) Но подумайте, можэт ptrdiff_t ?
From:[info]lqp
Date:April 9th, 2016 - 11:24 am
(Link)
ptrdiff_t это какой-то уж совсем хардкор. А size_t даже короче чем unsigned int, и имя симпатичное.
[User Picture]
From:[info]ded_mitya
Date:April 9th, 2016 - 07:12 pm
(Link)
> А size_t даже короче чем unsigned int

Когда во время оно мне надоело печатать, я сделал
typedef unsigned long ul;
Powered by LJ.Rossia.org