|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
|
Как перенести параметры из ф-ции printf() в самодельную04.06.2011, 09:22. Показов 25535. Ответов 104
Метки нет (Все метки)
Ребят, подскажите как решить задачу.
Нужно перенести параметры функции printf() в самодельную ф-цию myfunk(). При условии если булева переменная Х==1. Если не равна 1, то не переносить. Задача осложняется тем, что число параметров ф-ции может быть переменным. Подскажите пожалуйста, буду очень признателен.
0
|
|
| 04.06.2011, 09:22 | |
|
Ответы с готовыми решениями:
104
Как перенести параметры с XP на 7
Параметры printf |
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
||||||
| 05.06.2011, 14:08 [ТС] | ||||||
|
Гыыыыы.
Попробовал и так сделать, в итоге оказалось что при инициализации переменной "с" int не нужен:
Ну в принципе теперь компилится нормально, пару замечаний есть(warnings). Но я конечно и по убирал не мало кода, в основном некоторые циклы if, где ругался. Щас довести до ума осталось.
0
|
||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 05.06.2011, 14:09 | |
|
Uklunok, во-первых, зачем в этом фрагменте вообще нужна строка #3?
Во-вторых, в языке С, если у параметров и возвращаемого значения функции опущены аннотации типов, то считается, что тип - int.
0
|
|
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
|||||||||||||
| 05.06.2011, 14:22 [ТС] | |||||||||||||
|
Ого себе. Этот компилятор оказывается сохранил весь код в ассемблере, поместил его в папку debug, исходный код на Си весит 6,8кБ, а этот на ассемблере 70кБ))
Добавлено через 3 минуты Добавлено через 4 минуты Мистика какая-та. Сделал так:
Добавлено через 2 минуты Может вобще так оставить?:
0
|
|||||||||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 05.06.2011, 14:29 | ||
|
Uklunok, extern my_putchar - это прототип (объявление интерфейса) функции my_putchar, которая должна быть определена где-то в другой единице трансляции. my_putchar - прототип функции, которая определяется в текущей единице трансляции. Так как эта функция нигде не вызывается, то сам факт, что она не определена, к ошибкам не приводит.
0
|
||
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
|
| 05.06.2011, 14:49 [ТС] | |
|
else (void)putchar(c); - эту тоже убрать?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 05.06.2011, 14:51 | |
|
Uklunok, а вот это уже убирать не надо
0
|
|
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
|
| 05.06.2011, 14:54 [ТС] | |
|
Ещё ругается на эту строку:
if (*format == '%') goto out; я её убрал
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 05.06.2011, 14:57 | ||
|
Uklunok, что именно говорит?
Добавлено через 1 минуту
0
|
||
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
|||||||||||||||||||||
| 05.06.2011, 15:21 [ТС] | |||||||||||||||||||||
|
дак у меня комилятор виснет.
Тут такая штука получается:
Ни какой ошибки не выдаёт, просто виснет компилятор(( Добавлено через 4 минуты Хотя в самом исходнике для МК есть такие строки:
Добавлено через 2 минуты Всё разобрался, тут имя out такое у метки и у переменной одно и тоже. сделал так: if (*format == '%') goto out1; //дальше ещё if-ы else { out1: printchar (out, *format); ++pc; } Добавлено через 9 минут А как быть с параметром %p:
Добавлено через 17 секунд А как быть с параметром %p:
0
|
|||||||||||||||||||||
|
|
|||||||
| 05.06.2011, 15:55 | |||||||
|
Добавлено через 1 минуту Добавлено через 5 минут
0
|
|||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 05.06.2011, 15:56 | ||
|
0
|
||
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
||
| 05.06.2011, 16:00 | ||
|
А было бы действительно интересно посмотреть... ![]() Хотя навскидку - только преобразования типов указателей претендуют на специфику архитектуры. Остальное - вполне стандартный С++... Хотя на 64-битной - весьма вероятны проблемы. Но написано это было еще в 2003 году...
0
|
||
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
|
| 05.06.2011, 16:02 [ТС] | |
|
Нет, на "v" ничего не начинается. Только
va_start(ap, v) (ap = (va_list) & v + sizeof(v)) va_arg(ap, t) (*(t *) ((ap += sizeof(int)) - sizeof(int))) va_end(ap) (ap = (va_list) 0) Как господин Nameless One, сказал сделать, вроде должно работать, ведь проверяться будет на железе
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 05.06.2011, 16:03 | ||
|
0
|
||
|
|
||||
| 05.06.2011, 16:06 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
||
| 05.06.2011, 16:11 [ТС] | ||
|
0
|
||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 05.06.2011, 16:15 | ||
|
0
|
||
|
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
|
|
| 05.06.2011, 17:05 [ТС] | |
|
Ну дак я ведь ещё и в билдере проверил. Перенёс код, скомпилировал и работает. Правда компилятор для ftdi выдал 4 warning-a, ну это не беда думаю...
Добавлено через 56 секунд А что за тесты?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 05.06.2011, 17:07 | |
|
Uklunok, программа, которая будет вызывать твою функцию (работоспособность которой нужно проверить) с различными аргументами, чтобы выяснить, правильно ли работает эта функция.
0
|
|
| 05.06.2011, 17:07 | |
|
Как припаять PLS на самодельную плату Не могу понять как исправить ошибку Warning: printf() [function.printf]: Too few arguments in Z:\home\ksards.ru\www\id\1.php on line 76 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|