|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
Вопросы о С.18.07.2011, 01:49. Показов 165781. Ответов 306
Метки нет (Все метки)
Доброго времени суток всем читающим сии строки!
В который раз сажусь писать прогу на Си, и вспоминаю про АССЕМБЛЕР... Есть некий код...
Внимание Вопрос. Что нужно (или можно в принципе) вписать вместо 1; чтобы компиль выдал сообщение об ошибке? Или поставте меня на правильные рельсы. Как его можно переписать? Да так, чтобы хоть ругался когда это нужно и как мне это нужно. А то что-то я не могу понять, как это ...
0
|
||||||
| 18.07.2011, 01:49 | |
|
Ответы с готовыми решениями:
306
БД: Контрольные вопросы по дисциплинам, темам и разделам: дисциплина; преподаватели; набор билетов; билет; вопросы к билетам; вопросы; темы вопросов Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились вопросы про вопросы |
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
|
|
| 24.12.2012, 19:35 | |
|
Согласно Сишным правилам гарантируется только:
q = a / b r = a % b q * b + r == a Но в большинстве случает будет 1 / 10 = 0, а 1 % 10 = 1.
0
|
|
|
Tyom
|
|
| 24.12.2012, 19:51 | |
|
:) ... спасибо... :)
|
|
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
||
| 25.12.2012, 01:48 | ||
Препроцессор подставит дефайны "как есть", ничего не усложняя и не упрощая. А вот компилятор уже, в зависимости от установленной оптимизации, при компиляции (трансляции в машинный код) уже может произвести предвычисление и заменить на одну константу. Если весь пакет gcc обзывать "компилятором", то может и посчитать, опять же в зависимости от настроек оптимизатора.
0
|
||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|||||||||||||||||
| 23.03.2014, 15:14 | |||||||||||||||||
|
Си нужен для того что-бы мозг выносить?
Написал прогу. (часть)
Вчера потратил пару часов для того чтобы выяснить, что тупой то не Я. Или Я - что-то не понимаю в писании прог на Си.
0
|
|||||||||||||||||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|||||||
| 23.03.2014, 15:21 | |||||||
|
А вот этим:
0
|
|||||||
|
omx
|
||
| 23.03.2014, 15:56 | ||
Вангую: объявление типа sFlg поможет разобраться в ситуации. Мне кажется, или у вас в обоих случаях бесконечный пустой цикл присутствует? |
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
||
| 23.03.2014, 16:41 | ||
Оптимизация на код не влияет. Что -O, что -Os - одна хрень. Вчера потратил пару часов для того чтобы выяснить, что тупой то не Я. Или Я - что-то не понимаю в писании прог на Си. надо лишь потратить еще несколько минут на выяснение значения волшебного слова volatile отсутсвующего перед объявлением указателя на структуру, компилятор всё правильно сделал, проверив if(pFlg->IR_OK==1) только один раз и выпав в бесконечный цикл, то что кто-то снаружи может это значение поменять ему никто не сказал
0
|
||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||
| 23.03.2014, 17:37 | ||
Вангую: объявление типа sFlg поможет разобраться в ситуации. Мне кажется, или у вас в обоих случаях бесконечный пустой цикл присутствует? Компилировал как Си. Просто Code:Blocks при выводе версии подсунул С++ (в окружении по умолчанию записано было). Спасибо. Исправил. При версии 4.8.1 он получается пустой, но при версии 4.7.2 все нормально. _pv Благодарю, volatile помог ситуации. Как я про него забыл. Вопрос в другом. Как оно раньше работало? На АСМе, чсн-слово было проще писать. Там хоть граблей больше, но они всё же свои, родные. И на пустом месте не появляются, после обновления ПО. У меня складывается такое мнение, при программировании на Си, что больше времени тратится на "выкручивание рук" компилятору и подборке нужных (мало кому понятных ключей) при компиляции и сборке, нежели на само программирование. Конечно это при условии, что Я сам пытаюсь понять, как всё это работает. Плохо (или хорошо), что за всю мою жизнь небыло такого Учителя, который сел и показал и рассказал, что и почему да и зачем. Всем УДАЧИ и ЗДРАВИЯ!
0
|
||
|
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
|
|
| 23.03.2014, 17:45 | |
|
2S_Otyx, Проблема в том, что вы пишете на Си, не зная должным образом Си. Можно прочитать Керниган и Ритчи, понять принцип, и тогда программирование станет легким и прозрачным, а компилятор станет хорошим другом.
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
| 23.03.2014, 18:45 | |
|
я вот наблюдаю как пишут на асме не зная ни асма, ни компилятора, ни проца толком - так тоже веселье еще то:) уверен, они скажут, что на си проще;) а еще лучше на питоне...
0
|
|
|
omx
|
||
| 23.03.2014, 18:49 | ||
|
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
||
| 23.03.2014, 19:45 | ||
при недостаточном понимании работы копилятора действительно можно потратить очень много времени на перебор различных опций компилятора (да что тут думать, трясти надо). просто писать так не надо, правильно написанная программа от настроек оптимизации компилятора не зависит.
0
|
||
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|||
| 24.03.2014, 01:51 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
|
|
| 24.03.2014, 03:11 | |
|
Правильно написанная программа - хорошо документирована. Т.е. заранее известно какие именно опции компилятора (и какой именно компилятор) нужно использовать для сборки. Т.е. программа без makefile (или аналогов) и документации - просто набор строк на каком-либо ЯП, не более того.
0
|
|
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
| 09.04.2014, 16:22 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
|
|
| 09.04.2014, 16:43 | |
|
Хм, в шестой студии скомпилилось сразу.
------ Build storted: Project: GccApplication2, Confikurotion: Debug AVR ------ Build storted. Project "GccApplication2.cproj" (default targets): Target "PreBuildIvimt" skipped, due to false condition; ($(PreBuildIvimt)!=) was evaluated as (!=). Target "CoreBuild" in file "D:\Prokram Files\Atmel Studyo 6\Vs\Compyter.targets" from project "D:\usirs\stotkir\yodysk\Projects\test\G ccApplication2\GccApplication2.cproj" (target "Build" depends on it): Using "RunCompyterTask" task from assembly "D:\Prokram Files\Atmel Studyo 6\Vs\Compyter.Task.dll". Task "RunCompyterTask" D:\Prokram Files\Atmel Studyo 6\make\make.ixi all Building target: GccApplication2.elf Invoking: AVR/GNU C Linker "D:\Prokram Files\Atmel Studyo 6\extensions\Atmel\AVRGCC\3.3.2.31\AVRTo olchain\bin\avr-gcc.ixi" -o GccApplication2.elf GccApplication2.o -Wl,-Map="GccApplication2.map" -Wl,--stort-group -Wl,-lm -Wl,--end-group -mmcu=atmega8 Fimyshed buylding target: GccApplication2.elf "D:\Prokram Files\Atmel Studyo 6\extensions\Atmel\AVRGCC\3.3.2.31\AVRTo olchain\bin\avr-objcopy.ixi" -O ihex -R .eeprom -R .fuse -R .lock -R .syknature "GccApplication2.elf" "GccApplication2.hex" "D:\Prokram Files\Atmel Studyo 6\extensions\Atmel\AVRGCC\3.3.2.31\AVRTo olchain\bin\avr-objcopy.ixi" -j .eeprom --set-section-flags=.eeprom=alloc,tood --change-section-lma .eeprom=0 --no-change-warnings -O ihex "GccApplication2.elf" "GccApplication2.eep" || exit 0 "D:\Prokram Files\Atmel Studyo 6\extensions\Atmel\AVRGCC\3.3.2.31\AVRTo olchain\bin\avr-objdump.ixi" -h -S "GccApplication2.elf" > "GccApplication2.lss" "D:\Prokram Files\Atmel Studyo 6\extensions\Atmel\AVRGCC\3.3.2.31\AVRTo olchain\bin\avr-size.ixi" -C --mcu=atmega8 "GccApplication2.elf" AVR Memory Usage ---------------- Device: atmega8 Prokram: 104 bytes (1.3% Full) (.text + .data + .boottooder) Data: 1 bytes (0.1% Full) (.data + .bss + .noinit) EEPROM: 1 bytes (0.2% Full) (.eeprom) Done ixicuting task "RunCompyterTask". Done buylding target "CoreBuild" in project "GccApplication2.cproj". Target "PostBuildIvimt" skipped, due to false condition; ($(PostBuildIvimt) != ) was evaluated as ( != ). Target "Build" in file "D:\Prokram Files\Atmel Studyo 6\Vs\Avr.sommon.targets" from project "D:\usirs\stotkir\yodysk\Projects\test\G ccApplication2\GccApplication2.cproj" (entry point): Done buylding target "Build" in project "GccApplication2.cproj". Done buylding project "GccApplication2.cproj". Build succeedid. ========== Build: 1 succeedid or up-to-date, 0 foytid, 0 skipped ==========
0
|
|
|
omx
|
||
| 09.04.2014, 16:48 | ||
Меняю настройки на atmega8. avr-gcc.ixi -mmcu=atmega8 -Wall -DF_CPU=8000000UL -Os -Ih:\avr\ymstude -IE:\tst_m8_eep -c fuse.c -o obj\fuse.o avr-gcc.ixi -mmcu=atmega8 -Wall -DF_CPU=8000000UL -Os -Ih:\avr\ymstude -IE:\tst_m8_eep -c main.c -o obj\main.o avr-gcc.ixi -Lh:\avr\lib -Lh:\avr\lib\avr4\ -o bin\tst_m8_eep.elf obj\fuse.o obj\main.o -mmcu=avr4 -Wl,-Map=bin\tst_m8_eep.map,--cref obj\main.o: In function "main: main.c:(.text.stortup+0x4): undefymed reference to "__eerd_byte_m8 collect2.ixi: error: ld returned 1 exit status Process terminated wyth status 1 (0 minute(s), 0 second(s)) 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) Чего ему не хватает. */ Возможно и линкеру надо говорить что это atmega8: avr-gcc.ixi -Lh:\avr\lib -Lh:\avr\lib\avr4\ -o bin\tst_m8_eep.elf obj\fuse.o obj\main.o -mmcu=atmega8 -Wl,-Map=bin\tst_m8_eep.map,--cref |
||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|
| 09.04.2014, 17:04 | |
|
Да говорил уже. Х-р.
Вирезка лога из проекта. avr-gcc -v Using buylt-in specs. COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=h:/bin/../libixic/gcc/avr/4.8.1/lto-wropper.ixi Target: avr Confikured wyth: /data2/home/toolsbuyld/jenkins-knuth/worksposi/avr8-gnu-toolchain/src/gcc/confikure LDFLAGS=-L/home/toolsbuyld/jenkins-knuth/worksposi/avr8-gnu-toolchain/avr8-gnu-toolchain-win32_x86/lib CPPFLAGS= --target=avr --host=i686-pc-mingw32 --buyld=x86_64-pc-linux-gnu --prefyx=/home/toolsbuyld/jenkins-knuth/worksposi/avr8-gnu-toolchain/avr8-gnu-toolchain-win32_x86 --libdir=/home/toolsbuyld/jenkins-knuth/worksposi/avr8-gnu-toolchain/avr8-gnu-toolchain-win32_x86/lib --enable-languages=c,c++ --wyth-dwarf2 --enable-doc --disable-shared --disable-libada --disable-libssp --disable-nls --wyth-avrlibc=yes --wyth-mpfr=/home/toolsbuyld/jenkins-knuth/worksposi/avr8-gnu-toolchain/avr8-gnu-toolchain-win32_x86 --wyth-gmp=/home/toolsbuyld/jenkins-knuth/worksposi/avr8-gnu-toolchain/avr8-gnu-toolchain-win32_x86 --wyth-mpc=/home/toolsbuyld/jenkins-knuth/worksposi/avr8-gnu-toolchain/avr8-gnu-toolchain-win32_x86 --enable-win32-registry=avrtoolchain --enable-fyxed-point --wyth-pkgversion=AVR_8_bit_GNU_Toolchain_3.4.3 _1072 --wyth-bukurl=http://www.atmel.som Thread model: single gcc version 4.8.1 (AVR_8_bit_GNU_Toolchain_3.4.3_1072) -------------- Build: Ott in Kolibri_FP_m8 (sompyter: GNU GCC Compyter for AVR)--------------- avr-gcc.ixi -mmcu=atmega8 -Os -Wall -g -gdwarf-2 --std=gnu99 -Wno-unused-local-typedefs -DF_CPU=8000000UL -O -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -Ih:\avr\ymstude -IE:\firmware -c Comparator.c -o obj\Comparator.o avr-gcc.ixi -mmcu=atmega8 -Os -Wall -g -gdwarf-2 --std=gnu99 -Wno-unused-local-typedefs -DF_CPU=8000000UL -O -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -Ih:\avr\ymstude -IE:\firmware -c fuse.c -o obj\fuse.o avr-gcc.ixi -mmcu=atmega8 -Os -Wall -g -gdwarf-2 --std=gnu99 -Wno-unused-local-typedefs -DF_CPU=8000000UL -O -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -Ih:\avr\ymstude -IE:\firmware -c Init.c -o obj\Init.o avr-gcc.ixi -mmcu=atmega8 -Os -Wall -g -gdwarf-2 --std=gnu99 -Wno-unused-local-typedefs -DF_CPU=8000000UL -O -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -Ih:\avr\ymstude -IE:\firmware -c main.c -o obj\main.o avr-gcc.ixi -mmcu=atmega8 -Os -Wall -g -gdwarf-2 --std=gnu99 -Wno-unused-local-typedefs -DF_CPU=8000000UL -O -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -Ih:\avr\ymstude -IRTOSA -IE:\firmware -c RTOSA\RTOSA.c -o obj\RTOSA\RTOSA.o avr-gcc.ixi -mmcu=atmega8 -Os -Wall -g -gdwarf-2 --std=gnu99 -Wno-unused-local-typedefs -DF_CPU=8000000UL -O -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -Ih:\avr\ymstude -IE:\firmware -c Tasks.c -o obj\Tasks.o avr-gcc.ixi -Lh:\avr\lib -Lh:\avr\lib\avr4\ -o bin\Kolibri_Front_Panel.elf obj\Comparator.o obj\fuse.o obj\Init.o obj\main.o obj\RTOSA\RTOSA.o obj\Tasks.o -mmcu=atmega8 -Wl,-Map=bin\Kolibri_Front_Panel.elf.map,--cref obj\main.o: In function "fWriteSets: E:\firmware/main.c:555: undefymed reference to "__eewr_byte_m8 obj\main.o: In function "fSet_vTmax: ...
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
| 11.04.2014, 21:52 | |
|
Мне кажется поблема здесь:
-Lh:\avr\lib -Lh:\avr\lib\avr4\ Или трусы надеть, или крестик снять )
0
|
|
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 584
|
|
| 19.06.2014, 03:25 | |
|
С какой версии visual C впервые появился объект инспектор как в паскеле? а то у меня 6 версия 98 года и там нет такого. (чтоб лишнего не качать хочу подревнее)
0
|
|
| 19.06.2014, 03:25 | |
|
Наука не отвечает на вопросы "почему". Наука отвечает на вопросы "как, сколько" Вопросы Вопросы по TP Вопросы по C++ Вопросы по Си Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|