А что в этой мощной программе указывает, что она с двумя плюсами? Вроде никаких классов нет.
Я итак объявляю переменную Variable дважды: до main и в теле, другие конструкции GCC не понимает.
Как тогда переменной присваивать новое значение!??? Использование только констант допустимо только в этом примере, в реальной программе переменная должна быть переменной! Т.е. без каких-либо ограничений позволять изменять свое значение. char [near_infinity] Variable; переписать можно. Во время выполнения вызываемая функция должна беспокоиться о границах массива и контролировать возможность затереть чужую память. Поскольку Ц - язык высокого уровня, программист лишен возможности контролировать поведение чужой функции.
Вот более приближенный к жизни вариант, который проглатывает GCC:
#include </usr/include/stdio.h>
char *Table, *User, Query;
int main (int argc, char **argv) {
Table='users'; User='Vasya'; printf('Table=%s
User=%s
',Table,User);
Query=sprintf('select password from %s where login='%s'',Table,User);
printf('Query=%s',Query);
exit(0); }
Но происходит крах во время исполнения:
./strcat
Table=users
User=Vasya
Bus error (core dumped)
Странно то, что в прототипе:
cat /usr/include/stdio.h | grep sprintf
int sprintf(char * __restrict, const char * __restrict, ...);
А ведь int != char , не так ли. Как же всё-таки на Ц записать выражение:
строка2 = строка1 + строка0;
|