C preprocesor

Miroslav Draxal evik na volny.cz
Neděle Červen 18 21:25:16 CEST 2017


Tohle je právě ten specialní případ, kdy to nejde

When using __IDLOC(), the argument must only consist of hexadecimal digits
with 

no radix specifiers or other characters. Any character which is not a
hexadecimal digit 

will be programmed as a 0 in the corresponding location.

 

 

From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Hynek Sladký
Sent: Sunday, June 18, 2017 6:13 PM
To: HW-news
Subject: Re: C preprocesor

 

Tento pripad se da resit i jednoduseji:

#pragma config IDLOC0 = ((B) << 8) | ((C) << 4) | (D)

Hynek Sladky



On 18.6.2017 15:07, Miroslav Draxal wrote:

Dobrý den,
Výsledek šel mimo konferenci, tímto děkuji [jindroush na seznam.cz] za
vyřešení. Je to takhle
 
#define A 0x
#define B 1
#define C 2
#define D 4
 
#define GLUE(x,y,z,q) x ## y ## z ## q
#define SUPERGLUE(x,y,z,q) GLUE(x,y,z,q) 
#define HUHU SUPERGLUE(A,B,C,D)
#pragma config IDLOC0 = HUHU // Vyzkoušeno XC8
 
 
Dale viz zde: 
https://stackoverflow.com/questions/1489932/how-to-concatenate-twice-with-th
e-c-preprocessor-and-expand-a-macro-as-in-arg
 
Ještě jednou díky,
Míra
 

 

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20170618/3a814c60/attachment.html>


Další informace o konferenci Hw-list