LINUX.ORG.RU
Ответ на: комментарий от backburner

Нет такого типа int*.

Это было ответом на мой пост о том, что char* a, b, c воспринимается как объявление трех указателей, что неверно.

в этом месте не тип, а в других местах ведёт себя как тип:

1. определяет свойства переменной

2. есть поддержка действий (трёх, но всё равно есть)

там одно, здесь другое. Нелогично.

ЗЫЖ я не пытаюсь спорить со стандартом, я просто указываю на нелогичность.

emulek
()
Ответ на: комментарий от fang

Потому что тип объявленной переменной и имя типа это не одно и то же. Потому что синтаксически объявление имеет структуру

я знаю.

то ты и получишь переменные разных типов, потому что у них разные деклараторы.

я с этим не спорил.

Речь идёт о том, что синтаксически лучше было-бы сделать что-бы декларатор была-бы один. Т.е. сначала пишу что мне нужно, const, static, pointer… А потом список имён.

Или просто в одной декларации одну переменную, всё равно переменные ИМХО нужно декларивать по мере необходимости.

emulek
()
Ответ на: комментарий от emulek

что C позволяет преобразовывать между целыми и указателями?

НЕ ПОЗВОЛЯЕТ

4.2: 6.3.2.3/{5,6}

An integer may be converted to any pointer type. <...>

Any pointer type may be converted to an integer type. <...>

ilammy ★★★
()
Ответ на: комментарий от emulek

А в чём проблема на итаниках? То, что преобразования типов могут вести к потере данных, хорошо известно.

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

простите, ошибся. Имелось ввиду конечно amd64.

То, что преобразования типов могут вести к потере данных, хорошо известно.

AFAIK такой каст где угодно может привести к чему угодно. На amd64 к потере данных(если указатель в int и обратно), а потом, при использовании указателя, у вас точно UB будет.

emulek
()
Ответ на: комментарий от Begemoth

А для этого stdint.h определяет intptr_t.

ненужный костыль ИМХО. Какой смысл в нём?

emulek
()
Ответ на: комментарий от backburner
int* y

синтаксически, тут int* - не тип данных. логически - тип данных. // всегда ваш, капитан

MyTrooName ★★★★★
()
int *i;

Всё остальное от лукавого.

xterro ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.