Другие языки программирования и технологии
Учю с++ помогите разобратся с некоторыми вопросами.
Вот так нормально делать: const float pi =3.14; float pi = 3.14; ? Или будет конфликт? И ещё вот так: enum Deys {Sunday , Monday , Tuesday , Wednesday , Thursday , Friday , Saturday}; const int Sunday = 0; const int Monday = 1; const int Tuesday = 2; const int Wednesday = 3; const int Thursday = 4; const int Friday = 5; const int Saturday = 6; ? Или тоже будет конфликт? и если сделать так: #define age 2; const int age = 2; будет конфликт?
1)с пи будет ошибка переменная pi объявлена 2 раза
2)с энамами должно работать, переменная будет типа дей, а значение санди, манди и т. д. , а переменная санди будет равна 0, манди =1 и т. д. разное в общем, но я не советую энамы использовать это только лишние проблемы, тоже самое что пытаться в свой код объединение пристроить
3)дефайн используй только для создания макросов
2)с энамами должно работать, переменная будет типа дей, а значение санди, манди и т. д. , а переменная санди будет равна 0, манди =1 и т. д. разное в общем, но я не советую энамы использовать это только лишние проблемы, тоже самое что пытаться в свой код объединение пристроить
3)дефайн используй только для создания макросов
Естественно, ненормально и не пройдет. Во всех случаях конфликт на конфликте и конфликтом погоняет.
Алексей Левчук
обьясни почему плиз
Если писать в программе оба варианта, естественно будет ошибка из-за конфликта имён. Но каждый вариант имеет свои преимущества и недостатки, а по-этому имеет право на жизнь.
cоnst flоat pi =3.14;
float pi = 3.14;
Использую const,ты гарантируешь, что переменная pi в пределах программы останется неизменной, при этом она может помещаться в специальную область памяти, а не в область стека. Изменить её можно только из вне программы.
enum Deys {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
cоnst int Sunday = 0;
cоnst int Mоnday = 1;
cоnst int Tuesday = 2;
cоnst int Wednesday = 3;
cоnst int Thursday = 4;
cоnst int Friday = 5;
cоnst int Saturday = 6;
При использовании перечислений есть свои нюансы. Они могут как повысить читаемость небольшого кода, так и запутать код. Одним из плюсов их применения является то, что гарантируется неизменность переменных. Если Sunday==0, то её уже изменить нельзя, что бывает иногда полезно. Можно использовать и второй вариант с const int Sunday=0,но так больше клацать по клаве. enum можно использовать как объект. Но, всё же, все переменные перечислением не заменишь.
#define age 2
cоnst int age = 2;
В этом случае компилируется совсем разный код. Во втором случае в коде есть переменная, которая помещается в область данных и программа во время выполнения обращается к определённой ячейке памяти для извлечения значения age.В первом же случае при компиляции программы в бинарный код везде вместо идентификатора age подставится 2.Таже деректива define удобна при многофайловом проекте. Написал #define age 2 в заголовочном файле и приприинклудил его к другим где нужно. Чтобы сделать перменную age видимой в многофайловой сборке нужно больше повозиться. Хотя, например, Шилдт пишет, что использование extern и const предпочтительней define.
В-общем, использовать можно любые предложенные тобой варианты. Для каждого есть своё применение.
cоnst flоat pi =3.14;
float pi = 3.14;
Использую const,ты гарантируешь, что переменная pi в пределах программы останется неизменной, при этом она может помещаться в специальную область памяти, а не в область стека. Изменить её можно только из вне программы.
enum Deys {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
cоnst int Sunday = 0;
cоnst int Mоnday = 1;
cоnst int Tuesday = 2;
cоnst int Wednesday = 3;
cоnst int Thursday = 4;
cоnst int Friday = 5;
cоnst int Saturday = 6;
При использовании перечислений есть свои нюансы. Они могут как повысить читаемость небольшого кода, так и запутать код. Одним из плюсов их применения является то, что гарантируется неизменность переменных. Если Sunday==0, то её уже изменить нельзя, что бывает иногда полезно. Можно использовать и второй вариант с const int Sunday=0,но так больше клацать по клаве. enum можно использовать как объект. Но, всё же, все переменные перечислением не заменишь.
#define age 2
cоnst int age = 2;
В этом случае компилируется совсем разный код. Во втором случае в коде есть переменная, которая помещается в область данных и программа во время выполнения обращается к определённой ячейке памяти для извлечения значения age.В первом же случае при компиляции программы в бинарный код везде вместо идентификатора age подставится 2.Таже деректива define удобна при многофайловом проекте. Написал #define age 2 в заголовочном файле и приприинклудил его к другим где нужно. Чтобы сделать перменную age видимой в многофайловой сборке нужно больше повозиться. Хотя, например, Шилдт пишет, что использование extern и const предпочтительней define.
В-общем, использовать можно любые предложенные тобой варианты. Для каждого есть своё применение.
а смысл два раза объявлять переменные?
ни чё не поня ты наверное будующий хакер?
Алексей Левчук
Как не понял это ж самые основы? Или ты не программист?
Похожие вопросы
- Прошу помочь разобраться, пояснить некоторые пункты требования ТИПОГРАФИИ.
- Помогите выбрать язык программирования. И ответить на некоторые вопросы.
- Есть проблема с программои на С++ Помогите разобратся
- ребят... помогите разобратся в биосе, чтоб переустановить винду..
- Помогите пожалуйста разобраться с вопросами по информатике и программированию
- Хочу узнать некоторые вопросы по поводу ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
- Помогите плиз. мОжет этот вопрос окажется смешным и тупым...
- Кто знает фотошоп, помогите пожалуйста. Заранее Спасибо. Вопрос внутри
- Помогите пожалуйста ответить на вопрос
- Люди помогите. Ответте кратко на вопрос по информатике. Ничего нигде не нашла. В информатике полный 0!
например:
if (a
за энам забудь, просто знай что есть такое, с константами тоже не парься, прийдет время поймешь где она нужна, а где нет, дерективы тоже можешь забыть, только запутаешься больше, если их использовать