Hi,
I am use the ## as follows
#define ADC_SRV_DEV 1
#define ADCCON(dev, chan, reg) AD##dev##CON##chan##reg
then when I give ADCCON(ADC_SRV_DEV, 1, bits.FORM) = 3; // this is equavalent to AD1CON1bits.FORM = 3;
But for some reason it is taking it as ADADC_SRV_DEVCON1bits
Please help
Unless, of course, the OP's issue is due to a specific problem in the specific implementation...
It isn't. As I said, the issue is actually a 'C' one rather than one specific to any particular implementation. In other words, this is the expected and correct behaviour.