Re: Globální proměnné v C

Tomáš Hamouz hamouz na alsoft.cz
Pondělí Únor 27 16:26:06 CET 2012


A nestačí teda includnout spi.h do keyboard.c?

Od toho .h je, abyste zpřístupnil interface pro jiné moduly.
Pokud by to byly privátní věci, tak by je stačilo deklarovat v .c a
nemusíte se s headery vůbec obtěžovat.

Tomáš



MD> Tak tuhle variantu znám, problém je, že si chci dělat pořádek v
MD> "knihovnách" a pokus struktura patří k SPI.c, a chci do ní
MD> přistoupit z klávesnice.c, tak mi moc nejde přes prst, abych někde
MD> dělal header, kam přesunu strukturu z SPI. To mi nějak přijde proti logice.
MD> Prostě bych si jaksi představoval něco jako
MD> Global struct.......


MD> Míra 

MD> -----Original Message-----
MD> From: hw-list-bounces na list.hw.cz
MD> [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Richard Kaliciak
MD> Sent: Monday, February 27, 2012 2:29 PM
MD> To: HW-news
MD> Subject: Re: Globální proměnné v C

MD>  Dobry den,

MD> vytvorte si subor config.h
MD> #ifndef CONFIG_H
MD> #define CONFIG_H
MD> #define In4051_pin                        RB0
MD> #endif

MD> V Main.c a v klavesnice.c inkludujete config.h.

MD> To iste mozete urobit aj s klavesnice.h, kam umiestnite definiciu _SPIout_bity.

MD> Richard Kaliciak


MD> Am 27.02.2012 14:15, schrieb Miroslav Draxal:
>>
>> Dobrý den,
>>
>> Ve vedlejším vlákně se probírá C .
>>
>> Mějme
>>
>> -------------------------------------------
>>
>> 1/
>>
>> Main.c
>>
>> #define In4051_pin RB0
>>
>> #include "klavesnice.h"
>>
>> klavesnice.h
>>
>> klavesnice.c
>>
>> In4051_pin = 1;
>>
>> Error [192] D:\moje\PIC projekt\Dum\Zavlazovani\Pic\klavesnice.c; 62.5 
>> undefined identifier "In4051_pin"
>>
>> Jak zařídit, aby „ #define In4051_pin RB0“ bylo vidět v klávesnice.c, 
>> aniž by se muselo znovu deklerovat v klavesnice.h či klávesnice.c (je 
>> to celkove zjednodušený)
>>
>> --------------------------------------------
>>
>> 2/
>>
>> Spi.h
>>
>> typedef struct _SPIout_bity_flag
>>
>> { unsigned CanSleep :1;
>>
>> unsigned Set12V :1;
>>
>> }_SPIout_bity;
>>
>> _SPIout_bity SPIout_bity;
>>
>> klavesnice.c
>>
>> typedef struct _SPIout_bity_flag
>>
>> { unsigned CanSleep :1;
>>
>> unsigned Set12V :1;
>>
>> }_SPIout_bity;
>>
>> extern _SPIout_bity SPIout_bity;
>>
>> jak zařídit, abych nemusel definovat v klávesnice.c vnitřní strukturu 
>> struktury _SPIout_bity.
>>
>> -----------------------------------------
>>
>> Pokud někoho znechutím jednoduchostí, omlouvám se předem. Díky Míra
>>
>>
>>




Další informace o konferenci Hw-list