МикроЦ компајлера # инцлуде питање

W

WStevens_sa

Guest
Хи гуис. Знам да је ово глупо питање. Знам да ово може бити урађено у другим језицима. Али нисам сигуран како да то урадите у Ц. желео бих да знам да ли може да уради следеће. Желео бих да искористим све своје функције из мог тест.ц датотеке, а затим ставите их у датотеку фунцтион.ц. Али они и даље морају бити у стању да се зове из тест.ц. У суштини да мој код уредан и читљив. Покушао сам додати фајл у пројекту под називом фунцтион.ц а затим додајући своје функције на овом фајлу. Онда сам референцед фајл користећи # инцлуде "фунцтион.ц". Али ово не ради на компајлирања, јер не можете да пронађете функције. Да ли је то могуће у Ц Микро Про
 
То је проблем са оквиру Ц функција и променљивих. У суштини, свака од датотека које садрже, и онај који садржи 'главни () "функција се саставља на одвојеним фајловима објекат онда су повезане заједно да направите једну датотеку хек морате да програмирате ИЦ. Јер у време састављања одвија адресе других модула и функција у њима још увек није одлучио (повезивач да ли то) је немогуће ставити адресе на позив упутства у хек фајлу. Уместо тога, компајлер ставља привремену лажну адресу стави у месту које линкер онда мења када се зна шта стварно треба бити. Разлог зашто не можете добити то за компајлирање је да без неког знања о томе шта је функција или променљиве, компајлер не може рећи, ако један бајт или два бајта адреса или страница за избор је потребно и да ли треба резервисати за памћење доношење вредности до и од функције. Решење је једноставно, кажеш компајлеру функција постоји, али је изван модула који су тренутно ин То је мало компликованије него што се може објаснити овде, али ако погледате у датотеци помоћи за 'екстерним' кључну реч би требало објасните како кажеш компајлеру да се баве функцијама и променљиве не може да пронађе. То је тачно оно што се ради када на пример користите уграђене функције из микроЦ библиотека које можете користити у вашем коду. Брајан.
 
Између Здраво. Хвала вам што помажете ми да схватим. Код испод може да помогне некоме са истим проблемом. Како користити више. Ц фајлове у вашој Микро ц пројекта. Рецимо да имате 2 датотеке за тест1.ц аргумента Саке и тест2.ц у вашем пројекту. Тест1.ц садржи ваш воид маин ();. Тест2.ц садржи вашу функцију. Сада да позове функцију у Тест2.ц од тест1.ц која враћа вредност следеће мора бити у свакој датотеци. [КУОТЕ] ектерн инт тест1.ц Цалц (инт, инт б); инт вал; маин () {= Вал Цалц (2,3); / / Вал ће бити постављен на вредност вратио из функције. Тест2.ц Цалц} инт (инт д, инт д) {ретурн (Д + Е) + 100;} [/ куоте] Функција позив без враћања вредност [КУОТЕ] ектерн инт тест1.ц Цалц (инт, инт б) ; / / изјасни функцију инт вал; инт мивалуе = 25; маин () {Цалц (2,3); / / неће дати никакве вредности} тест2.ц ектерн инт мивалуе инт к, инт Цалц (инт к, инт и б) {к = (а + б) + мивалуе;} [/ куоте]
 

Welcome to EDABoard.com

Sponsor

Back
Top