Введите псевдоним для авто

#c #auto #type-alias

Вопрос:

Можно ли создать псевдоним типа для auto ? Я пробовал using var = auto и то , и typedef auto var другое, и оба выдают ошибку, что это недопустимо. Так есть ли способ?

Комментарии:

1. Не. Код в основном предназначен для чтения другими людьми. Создание собственного уникального названия для чего-либо только потому, что вам больше нравится на другом языке, сделает других программистов на C менее способными понять вашу программу. Почти всегда лучше быть идиоматичным.

2. Опустите вопрос, но не идею, ребята. Напишите ответ, если вы хотите обратиться к этой идее.

3. @AsteroidsWithWings Да, вы правы. Хотя это и не предлагается, но это разрешено

4. @arsdever Это правда, что вы можете голосовать так, как вам нравится. Но система работает лучше всего, если все следуют ее духу.

5. @arsdever Я не понизил голос, но я тоже не вижу особой ценности в этом вопросе: ОП не проводила никаких исследований того, что на самом auto деле находится в C или что он должен делать. Это может быть даже использовано для оправдания закрытия этого вопроса. Я согласен, однако, что было бы полезно задать этот вопрос, хотя бы для того, чтобы указать на него другим людям, которые тоже не проводили исследования.

Ответ №1:

Нет.

auto это не тот тип.

Это ключевое слово, которое запускает вывод типа.

Чтобы это работало, должна быть какая-то информация, из которой он мог бы сделать вывод! Вот почему это работает в объявлении с инициализатором.

Если вы действительно хотите иметь возможность писать var в своем коде, чтобы получить тот же эффект, как, например, в (скажем) JavaScript, вы могли бы написать макрос:

 #define var auto
 

Это заставит «слово» var вести себя точно так же, как «слово» auto .

Но, пожалуйста, пожалуйста, пожалуйста, не делай этого. Это только усложнит понимание вашего кода разработчиками C , фактически не предоставляя никакой ощутимой выгоды кому-либо взамен.

Комментарии:

1. Мне было просто любопытно, возможно ли это без макроса, в любом случае я бы его не использовал.