LINUX.ORG.RU

Что выведет программа на С?

 ,


0

1

Cоберется ли программа на C и если да, то что будет выведено на екран:

const float b = 4;
double c = 2;
volatile int a = b
//*^ ___ ^*/ c
;printf("%d\r^ ___ ^", a);

и чему будет равно a?



Последнее исправление: not_rj45 (всего исправлений: 2)

когда-то я помнил приоритеты разных операторов. А сейчас на приоритет большинства сочетаний операторов банально пофигу.

Так же и эти игрища с подобными различиями синтаксиса от версии к версии сишечки.

dzidzitop ★★
()

это не программа. если привести этот фрагмент кода к программе на с:


#include <stdio.h>

int main (void)
{

/* BEGIN */

const float b = 4;
double c = 2;
volatile int a = b
//*^ ___ ^*/ c
;printf("%d\r^ ___ ^", a);

/* END */


   return 0 ;
}

и компилировать как код c89:

gcc *.c -o test -W -Wall -pedantic -std=c89

то вывод программы будет:

^ ___ ^

поскольку спецсимвол '\r' переведёт курсор в начало текущей строки и вывод числа затрётся.

a будет равно 2.

anonymous
()
Ответ на: комментарий от anonymous

a будет равно 2.

не всегда, может быть равно и 4м, выше дали правильный ответ

not_rj45
() автор топика
Ответ на: комментарий от anonymous

Если заменить -std=c89 на -std=c99, то будет 4.

anonymous
()

Соберись и выведи на екран букву «э».

Virtuos86 ★★★★★
()

Ну будет число перед смайлом и что?

Dron ★★★★★
()

Кому-то смешно, а кому-то грусть навевает. Я когда компилятор писал, в этом месте багу сделал много часов его потом отлаживал...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.