Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
muss
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 2
1

Некорректно работает #define

26.10.2012, 23:17. Просмотров 1042. Ответов 4
Метки нет (Все метки)

По идее, если что-нибудь ввести, то программа должна попытаться выполнить это как команду то есть если пользователь ввел printf (Hello world");, то программа вызовет code(printf("Hello world")), а #define подменит на просто printf("Hello, world"). Но не работает.
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main (void)
{
char comand [100];
while(1==1)
{
scanf("%s", comand);
#define code(val); val
code(comand);
#undef code(val)
}
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 23:17
Ответы с готовыми решениями:

Как реализовать директиву #define для создания шаблона отпределения #define ?
Здравствуйте уважаемые. При написании программы появилась необходимость задать шаблон создания...

Некорректно работает if
Здравствуйте. У меня проблема. Если я указываю такое условие: if ( (i != k) &amp;&amp; (j != l) ) то if...

Некорректно работает программа на С/С++
Программа написанная на С++ должна вычислять факториал числа а в итоге не делает ничего кроме как...

Функция некорректно работает
Функция компилируется, но постоянно один и тот же ответ. y=0000... Где допущена ошибка? ...

Некорректно работает прогрмма
Программа выдает с a2 по a4 нули, хотя там должны быть значения отличные от нуля. Помогите...

4
NoMasters
Псевдослучайный
1918 / 1123 / 91
Регистрация: 13.09.2011
Сообщений: 3,185
26.10.2012, 23:32 2
Лучший ответ Сообщение было отмечено как решение

Решение

Всё работает. Вот только си — это вам не интерпритируемый недоязычёк. После макроподстановки получится так:
C
1
2
3
4
5
6
7
8
9
int main (void)
{
    char comand [100];
    while(1==1)
    {
        scanf("%s", comand);
        ; comand;
    }
}
Аргумент макроса подставился, как и было написано, никаким исполнением пользовательской строки здесь и не пахнет.
1
muss
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 2
27.10.2012, 00:35 3
А в принципе возможно сделать выполнение произвольного кода? (Я понимаю что скорее всего нет, т.к. придется делать встроенный компилятор, но вдруг...)
0
alkagolik
Заблокирован
27.10.2012, 04:38 4
Цитата Сообщение от muss Посмотреть сообщение
А в принципе возможно сделать выполнение произвольного кода?
а в принципе, возможно поставить задачу? ибо напрягает
0
Кот Ангенс
318 / 268 / 128
Регистрация: 24.05.2012
Сообщений: 629
27.10.2012, 13:18 5
Цитата Сообщение от muss Посмотреть сообщение
придется делать встроенный компилятор
Вы сами ответили на свой вопрос. Напишете мини-компилятор - будет можно.
0
27.10.2012, 13:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2012, 13:18

Некорректно работает программа на С/С++
Запускается программа вот её код #define _CRT_SECURE_NO_WARNINGS #include &lt;windows.h&gt; #include...

Некорректно работает программа на С
Все примеры из учебника используют переменные типа int но мне приходится использовать переменные...

Функция работает некорректно
Здравствуйте! Задача, написать функцию myfuc по заданному вызову ее int main(int argc, char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru