definice externi konstanty v C

Hynek Sladky econf@centrum.cz
Úterý Prosinec 4 12:39:13 CET 2007


Diky,

jenze #define se zpracuje pri kompilaci, nikoli az pri linkovani, coz 
prave potrebuju.

Linker umi to, co chci (viz priklad s assemblerem), ale nevim, jak v C 
napsat, aby to pak spravne slinkoval...

Hynek Sladky


Richard Kaliciak wrote:
> Dobry den,
> 
> pouzite #define, napr.
> 
> #define TIMER0PRESCALE		0x04	///< timer 0 prescaler default
> 
> nozete si vytvorit jeden subor hw_config.h, kde si definujete potrebne 
> veci a potom ho vsade #include-jete:
> 
> ----------------------------------
> #ifndef HW_CONFIG_H
> #define HW_CONFIG_H
> 
> #define TIMER0PRESCALE		0x04	///< timer 0 prescaler default
> 
> #define LCD_CTRL_RS		0
> #define LCD_CTRL_RW		1
> #define LCD_CTRL_E		2
> 
> #endif
> ----------------------------------
> 
> Richard Kaliciak
> 
> 
> Hynek Sladky schrieb:
> 
>>Dobry den,
>>
>>jak definovat externi konstantu v C?
>>
>>Mam knihovni funkci, ktera (zavisle podle HW na kterem bezi) potrebuje 
>>slinkovat s ruznymi konstantami.
>>Napr.
>>   NejakyReg |= konst_maska;
>>
>>pokud definuju
>>const unsigned char konst_maska=0x20;
>>tak se vytvori 8-bit promenna v casti pro kod.
>>
>>Pritom pokud bych pouzil assembler, tak toto mozne je:
>>XREF _konst_maska
>>in a,(NejakyReg)
>>or _konst_maska
>>out (NejakyReg),a
>>
>>Jenze pouzitim assembleru v C zdrojaku se zdrojak stava znacne 
>>neprehlednym, tak bych to radsi udelal rovnou v C, pokud to je mozne...



Další informace o konferenci Hw-list