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
MAKEINFO(1)							   User Commands						       MAKEINFO(1)

NAME
makeinfo - translate Texinfo documents SYNOPSIS
makeinfo [OPTION]... TEXINFO-FILE... DESCRIPTION
Translate Texinfo source documentation to various other formats, by default Info files suitable for reading online with Emacs or standalone GNU Info. General options: --error-limit=NUM quit after NUM errors (default 100). --force preserve output even if errors. --help display this help and exit. --no-validate suppress node cross-reference validation. --no-warn suppress warnings (but not errors). --reference-limit=NUM warn about at most NUM references (default 1000). -v, --verbose explain what is being done. --version display version information and exit. Output format selection (default is to produce Info): --docbook output DocBook XML rather than Info. --html output HTML rather than Info. --xml output Texinfo XML rather than Info. General output options: -E, --macro-expand FILE output macro-expanded source to FILE. ignoring any @setfilename. --no-headers suppress node separators, Node: lines, and menus from Info output (thus producing plain text) or from HTML (thus producing shorter output); also, write to standard output by default. --no-split suppress splitting of Info or HTML output, generate only one output file. --number-sections output chapter and sectioning numbers. -o, --output=FILE output to FILE (directory if split HTML), Options for Info and plain text: --enable-encoding output accented and special characters in Info output based on @documentencoding. --fill-column=NUM break Info lines at NUM characters (default 72). --footnote-style=STYLE output footnotes in Info according to STYLE: `separate' to put them in their own node; `end' to put them at the end of the node in which they are defined (default). --paragraph-indent=VAL indent Info paragraphs by VAL spaces (default 3). If VAL is `none', do not indent; if VAL is `asis', preserve existing indentation. --split-size=NUM split Info files at size NUM (default 50000). Input file options: --commands-in-node-names allow @ commands in node names. -D VAR define the variable VAR, as with @set. -I DIR append DIR to the @include search path. -P DIR prepend DIR to the @include search path. -U VAR undefine the variable VAR, as with @clear. Conditional processing in input: --ifhtml process @ifhtml and @html even if not generating HTML. --ifinfo process @ifinfo even if not generating Info. --ifplaintext process @ifplaintext even if not generating plain text. --iftex process @iftex and @tex; implies --no-split. --ifxml process @ifxml and @xml. --no-ifhtml do not process @ifhtml and @html text. --no-ifinfo do not process @ifinfo text. --no-ifplaintext do not process @ifplaintext text. --no-iftex do not process @iftex and @tex text. --no-ifxml do not process @ifxml and @xml text. The defaults for the @if... conditionals depend on the output format: if generating HTML, --ifhtml is on and the others are off; if generating Info, --ifinfo is on and the others are off; if generating plain text, --ifplaintext is on and the others are off; EXAMPLES
makeinfo foo.texi write Info to foo's @setfilename makeinfo --html foo.texi write HTML to @setfilename makeinfo --xml foo.texi write Texinfo XML to @setfilename makeinfo --docbook foo.texi write DocBook XML to @setfilename makeinfo --no-headers foo.texi write plain text to standard output makeinfo --html --no-headers foo.texi write html without node lines, menus makeinfo --number-sections foo.texi write Info with numbered sections makeinfo --no-split foo.texi write one Info file however big REPORTING BUGS
Email bug reports to bug-texinfo@gnu.org, general questions and discussion to help-texinfo@gnu.org. Texinfo home page: http://www.gnu.org/software/texinfo/ COPYRIGHT
Copyright (C) 2002 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING. SEE ALSO
The full documentation for makeinfo is maintained as a Texinfo manual. If the info and makeinfo programs are properly installed at your site, the command info makeinfo should give you access to the complete manual. makeinfo 4.3 November 2002 MAKEINFO(1)
All times are GMT -4. The time now is 08:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy