Sponsored Content
Full Discussion: enum and C preprocessor
Top Forums Programming enum and C preprocessor Post 302556287 by Corona688 on Saturday 17th of September 2011 04:58:59 PM
Old 09-17-2011
enum and C preprocessor

Say I have a list of enumerations I wish to use to select a variable at compile-time:

Code:
enum pins
{
        PIN_A=1,
        PIN_B=7,
        PIN_C=6,
}

int VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7;

#define PIN_TO_VAR(NUM) VAR ## NUM

int main(void)
{
        PIN_TO_VAR(PIN_A)=32;
}

But this doesn't work, because the macro combines VAR ## NUM into VARPIN_A instead of what I wanted -- value of PIN_A, aka 1, to get VAR1.

The usual trick of #define UNWRAP(X) X doesn't manage to get the value out of the enum, either.

Will I have to just convert all my enums into #define's to get macros to substitute them?
 

8 More Discussions You Might Find Interesting

1. Programming

what is the base type of enum

helo i have asked in exam what that what is the base type of enum options are given bewlo (1) long int (2) short int (3) signed int (4) unsigned int can u tell me what is the exact answer from the above option Regards, Amit (1 Reply)
Discussion started by: amitpansuria
1 Replies

2. IP Networking

DNS ENUM RR interpretation

Hi Guys, This is really really urgent. Am looking out for some quick answers. I'm developing a DNS Resolver client that interprets DNS Query repsonses & pass on the needful to DNS applications. When an ENUM query(modified to an nslookup naptr query) is issued & an NAPTR RR(Resource Record)... (1 Reply)
Discussion started by: smanu
1 Replies

3. Programming

Preprocessor

Hi, Anyone please explain the functionality of ## in c. I didn't get the following preprocessor directives, # define LL(x) x ## LL # define LL(x) x ## i64 Thanks, Naga:cool: (1 Reply)
Discussion started by: Nagapandi
1 Replies

4. Programming

enum in c++

#include <iostream> #include <stdio.h> using namespace std; typedef struct A { enum a{ red,blue,green}a; }obj11; obj11 obj1; int main() { //obj1.a=red; // how to set variable ? cout<<"sizeof struct is n"<<sizeof(obj1); cout<<"obj1.a is"<<obj1.a; if... (1 Reply)
Discussion started by: crackthehit007
1 Replies

5. Programming

Preprocessor __FILE__ for Debugging

Hi, Just wondering if it is possible to trim the file path output by __FILE__ preprocessor in my debugging line. Let's say my main.cpp file is found in C:\User\MyName\SystemA\Mod1\SubMod2\Test\main.cpp for __FILE__, I just want the filename - main.cpp to be printed, instead of the entire... (2 Replies)
Discussion started by: tanlccc
2 Replies

6. Programming

C- trying to code a 'spare array'; 'enum' fauled.

I am trying to implement a spare array in C that would be referenced by regular integers. Right away: define array for maximum possible index elements completely is not what I trying to get!!! It should be a construction that would have just 2 elements if I need to have just two indexes, like... (8 Replies)
Discussion started by: alex_5161
8 Replies

7. Programming

Mixed enum types - coverity defect

Hi All, I came across this error "MIXING ENUM TYPES" when I run my C program against the Coverity Tool. I've made many search relating to the error, but I didnt find the exact solution. Can anyone help me to overcome this.? Thanks in Advance.!! (3 Replies)
Discussion started by: Parameswaran
3 Replies

8. Programming

Use #if not defined with OR boolean logic in preprocessor directives

I am currently using Linux CentOS and programming in FORTRAN 90 using Portland 7.1 compiler. I am able to set in the preprocessor directives a flag called TEST. when I go to use logic in my code i can write #ifdef TEST execute something #endif Furthermore, if I want to negate the... (2 Replies)
Discussion started by: prodigious8
2 Replies
SARY(1) 							       Sary								   SARY(1)

NAME
sary - manual page for sary 1.0.2 SYNOPSIS
sary [OPTION]... PATTERN FILE DESCRIPTION
-c, --count only print a count of occurrences -i, --ignore-case ignore case distinctions -l, --lexicographical sort in lexicographical order -A, --after-context=NUM print NUM lines of trailing context -B, --before-context=NUM print NUM lines of leading context -C, --context=[NUM], print NUM (default 2) lines of output context -s, --start=TAG, print tagged region. set start tag to TAG -e, --end=TAG, print tagged region. set end tag to TAG -h, --help display this help and exit COPYRIGHT
Copyright (C) 2000 Satoru Takabayashi All rights reserved. This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MER- CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. sary 1.0.2 December 2000 SARY(1)
All times are GMT -4. The time now is 10:35 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy