#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. Мне было просто любопытно, возможно ли это без макроса, в любом случае я бы его не использовал.