Определив это:Переменный характер внутри постоянной
int var1 = 1;
int var2 = 2;
int var3 = 3;
Я хочу сделать это:
int result = varc * 70; // Where c is a previously defined int that can take 1,2 or 3 value.
Solutions? Спасибо.
Определив это:Переменный характер внутри постоянной
int var1 = 1;
int var2 = 2;
int var3 = 3;
Я хочу сделать это:
int result = varc * 70; // Where c is a previously defined int that can take 1,2 or 3 value.
Solutions? Спасибо.
В C вам не повезло, так как это не отражающий язык. То есть вы не можете получить значение переменной, каким-то образом «строя» имя, которое вы дали ему в исходном коде.
Но то, что вы могли бы сделать, это использовать массив:
int vars[] = {1, 2, 3};
int result = vars[i] * 70;
где i
является 0, 1 или 2.
Принимая значение 'vars [i]' кажется run-time, где инициализация - это время компиляции. Любое объяснение, почему это действительно? –
Замечание: 'int result = vars [i] * 70;' может быть только в функции (т. Е. 'Result' является автоматической переменной), поскольку вычисление инициализатора выполняется во время выполнения, а не компиляция, время (не постоянное выражение). Я чувствую, что решение Батшевы сбивает с толку без этого замечания. –
Вы пишете:
int result = varc * 70;
Это то, что вы хотите сделать невозможно на языке c.
Примечание: Varc является идентификатором
Запомнить IDENTIFIER в C: Идентификаторы названия организаций в программе C, таких как переменные, массивы, функции структур, объединений.
Оно должно быть уникальным для всех объектов, а также идентификатор представляет собой строку алфавитно-цифровых символов
Хорошо, что вы вспомнили. :)
Итак, вы никогда не использовали «c», присутствующий в «varc» для обработки (ссылки) на другие переменные/идентификаторы/сущности.
Надеюсь, что я могу решить ваши сомнения самым простым способом. Спасибо! :)
** _ ранее определенный _ **: что это значит? Переменная, которая может изменить время выполнения или определена во время компиляции? – LPs
Переменная, которая может изменить время выполнения. – user6626956
Ну, так ответ @Bathsheba - это то, что вам нужно. – LPs