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
ClonalFrame(1)						      General Commands Manual						    ClonalFrame(1)

NAME
ClonalFrame - inference of bacterial microevolution using multilocus sequence data SYNOPSIS
ClonalFrame [OPTIONS] inputfile outputfile DESCRIPTION
ClonalFrame identifies the clonal relationships between the members of a sample, while also estimating the chromosomal position of homolo- gous recombination events that have disrupted the clonal inheritance. Options: -x NUM Sets the number of iterations after burn-in (default is 50000) -y NUM Sets the number of burn-in iterations (default is 50000) -z NUM Sets the number of iterations between samples (default is 100) -e NUM Sets the number of branch-swapping moves per iterations (default is so that half of the time is spent branch-swapping) -m NUM Sets the initial value of theta to NUM (default is Watterson estimate) -d NUM Sets the initial value of delta to NUM (default is 0.001) -n NUM Sets the initial value of nu to NUM (default is 0.01) -r NUM Sets the initial value of R to NUM (default is initial theta/10) -M Do update the value of theta -D Do not update the value of delta -N Do not update the value of nu -R Do not update the value of R -T Do not update the topology -A Do not update the ages of the nodes -G Remove all gaps -H Remove all gaps at non-polymorphic positions -t NUM Indicate which initial tree to use: 0 for a null tree, 1 for a uniformly chosen coalescent tree and 2 for UPGMA tree (default) -w FILE Use Newick file for initial tree -a NUM Sets the first parameter of the beta prior distribution of nu -b NUM Sets the second parameter of the beta prior distribution of nu -U Use uniform priors for rho, theta and delta -B Run in BURST mode -C Run in UPGMA mode with a site-by-site bootstrap procedure -c Run in UPGMA mode with a fragment-by-fragment bootstrap procedure -S NUM Sets the seed for the random number generator to NUM -E NUM Sets the rate of exponential growth (default is 0) -I Ignores first block in the alignment -L Clean-up the alignment before running ClonalFrame -l Minimum distance between two reference sites (default is 50) -v Verbose mode AUTHOR
ClonalFrame was written by Xavier Didelot. This manual page was written by Andreas Tille <tille@debian.org>, for the Debian project (but may be used by others). February 2011 1.2 ClonalFrame(1)
All times are GMT -4. The time now is 08:33 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy