Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Глупый вопрос по С- не могу разобраться
Отправлено
Flasher
(95.153.93.228)
25 июля 2011, г. 14:49
y =3;
func (y++);
...
Что будет передано в функцию?
Составить ответ
|
Вернуться на конференцию
Ответы
3
-
Юрий_СВ
(
пустое
, 25.07.2011, 16:30:45
213.5.199.158
)
Так вот в том то и дело, что проверил в кейле(+)
-
Flasher
(347 байт, 25.07.2011, 14:54:42
95.153.93.228
)
Осознал - вызов некорректный 2 раза один и тот же аргумент, а порядок передачи аргументов не определен.
-
Flasher
(
пустое
, 25.07.2011, 17:27:35
95.153.93.228
)
короче примерно так "The order in which the arguments are evaluated is not specified, but this sequence point means that all of their side effects are complete before the function is entered. In the expression f(i++) + g(j++) + h(k++), f is called with a parameter of the original value of i, but i is incremented before entering the body of f. " Хотя Keil в топку
-
DASM
(
пустое
,
ссылка
, 25.07.2011, 15:00:52
188.134.85.103
)
просто "y"
-
DASM
(
пустое
, 25.07.2011, 14:52:4
188.134.85.103
)
Согласен, просто "y"
-
omen
(
пустое
, 25.07.2011, 15:23:34
81.222.195.194
)
С чего бы это? В функцию передастся то, что будет к завершению скобок.
-
POV
(
пустое
, 25.07.2011, 14:52:46
78.31.77.123
)
тогда f( (y++) ), не?
-
maik-vs
(
пустое
, 26.07.2011, 09:42:47
94.233.230.84
)
подойдем с другой стороны: "#dеfinе funс(у) у "далее, а=funс(у++). Чтоже, а=4?
-
ы
(
пустое
, 26.07.2011, 00:51:36
217.118.66.23
)
Какая связть между макросом и фукцией? Если DASM и прав, то это хрне знает почему. Пока скобка не закрыта, функция не вызовется. Соответственно ++ уже будет выполнен.
-
POV
(
пустое
, 26.07.2011, 08:56:0
78.31.77.123
)
ну я взял, и функцию заинлайнил дефайном. Запись вызова одна и та же осталась, а результат разный. Такого не имеет право быть
-
ы
(
пустое
, 26.07.2011, 12:15:49
217.118.66.11
)
А если в char записываю 1000 тоже всё должно корректно работать?
-
POV
(
пустое
, 26.07.2011, 16:31:23
78.31.77.123
)
тебя правда интересует ответ на этот вопрос?
-
ы
(
пустое
, 26.07.2011, 17:21:19
80.243.13.190
)
Нет. Это я к слову о том, что есть заданные афтарами компилятора (или соответствующего стандарта) правила, но не имеющие логической подоплёки. Просто так решили чтобы появилась определённость.
-
POV
(
пустое
, 27.07.2011, 08:03:18
78.31.77.123
)
стандарты читай, а не фантазию свою и воображение испражняй
-
DASM
(
пустое
, 26.07.2011, 10:42:36
188.134.85.103
)
блин, лениво в стандарт есть
-
DASM
(
пустое
, 25.07.2011, 14:53:43
188.134.85.103
)
PS лучше так не делать. Две строчки куда нагляднее
-
DASM
(
пустое
, 25.07.2011, 14:52:35
188.134.85.103
)
проверить не судьба ?
-
whale
(
пустое
, 25.07.2011, 14:50:34
85.26.235.39
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 4 пополам:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru