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
Gtk2::SourceView2::PrintCompositor(3pm) 		User Contributed Perl Documentation		   Gtk2::SourceView2::PrintCompositor(3pm)

NAME
Gtk2::SourceView2::PrintCompositor HIERARCHY
Glib::Object +----Gtk2::SourceView2::PrintCompositor METHODS
printcompositor = Gtk2::SourceView2::PrintCompositor->new ($buffer) o $buffer (Gtk2::SourceView2::Buffer) printcompositor = Gtk2::SourceView2::PrintCompositor->new_from_view ($view) o $view (Gtk2::SourceView2::View) string = $compositor->get_body_font_name $compositor->set_body_font_name ($font_name) o $font_name (string) double = $compositor->get_bottom_margin ($unit) o $unit (Gtk2::Unit) $compositor->set_bottom_margin ($margin, $unit) o $margin (double) o $unit (Gtk2::Unit) buffer = $compositor->get_buffer $compositor->draw_page ($context, $page_nr) o $context (Gtk2::PrintContext) o $page_nr (integer) string = $compositor->get_footer_font_name $compositor->set_footer_font_name ($font_name) o $font_name (string or undef) $compositor->set_footer_format ($separator, $left, $center, $right) o $separator (boolean) o $left (string or undef) o $center (string or undef) o $right (string or undef) string = $compositor->get_header_font_name $compositor->set_header_font_name ($font_name) o $font_name (string or undef) $compositor->set_header_format ($separator, $left, $center, $right) o $separator (boolean) o $left (string or undef) o $center (string or undef) o $right (string or undef) boolean = $compositor->get_highlight_syntax $compositor->set_highlight_syntax ($highlight) o $highlight (boolean) double = $compositor->get_left_margin ($unit) o $unit (Gtk2::Unit) $compositor->set_left_margin ($margin, $unit) o $margin (double) o $unit (Gtk2::Unit) string = $compositor->get_line_numbers_font_name $compositor->set_line_numbers_font_name ($font_name) o $font_name (string or undef) integer = $compositor->get_n_pages boolean = $compositor->paginate ($context) o $context (Gtk2::PrintContext) double = $compositor->get_pagination_progress boolean = $compositor->get_print_footer $compositor->set_print_footer ($print) o $print (boolean) boolean = $compositor->get_print_header $compositor->set_print_header ($print) o $print (boolean) integer = $compositor->get_print_line_numbers $compositor->set_print_line_numbers ($interval) o $interval (integer) double = $compositor->get_right_margin ($unit) o $unit (Gtk2::Unit) $compositor->set_right_margin ($margin, $unit) o $margin (double) o $unit (Gtk2::Unit) integer = $compositor->get_tab_width $compositor->set_tab_width ($width) o $width (integer) double = $compositor->get_top_margin ($unit) o $unit (Gtk2::Unit) $compositor->set_top_margin ($margin, $unit) o $margin (double) o $unit (Gtk2::Unit) wrapmode = $compositor->get_wrap_mode $compositor->set_wrap_mode ($wrap_mode) o $wrap_mode (Gtk2::WrapMode) PROPERTIES
'body-font-name' (string : default undef : readable / writable) Name of the font to use for the text body (e.g. "Monospace 10") 'buffer' (Gtk2::SourceView2::Buffer : default undef : readable / writable / construct-only) The GtkSourceBuffer object to print 'footer-font-name' (string : default undef : readable / writable) Name of the font to use for the page footer (e.g. "Monospace 10") 'header-font-name' (string : default undef : readable / writable) Name of the font to use for the page header (e.g. "Monospace 10") 'highlight-syntax' (boolean : default true : readable / writable) Whether to print the document with highlighted syntax 'line-numbers-font-name' (string : default undef : readable / writable) Name of the font to use for the line numbers (e.g. "Monospace 10") 'n-pages' (integer : default -1 : readable) The number of pages in the document (-1 means the document has not been completely paginated). 'print-footer' (boolean : default false : readable / writable) Whether to print a footer in each page 'print-header' (boolean : default false : readable / writable) Whether to print a header in each page 'print-line-numbers' (Glib::UInt : default 1 : readable / writable) Interval of printed line numbers (0 means no numbers) 'tab-width' (Glib::UInt : default 8 : readable / writable) Width of a tab character expressed in spaces 'wrap-mode' (Gtk2::WrapMode : default "none" : readable / writable) Whether to wrap lines never, at word boundaries, or at character boundaries. ENUMS AND FLAGS
enum Gtk2::Unit o 'pixel' / 'GTK_UNIT_PIXEL' o 'points' / 'GTK_UNIT_POINTS' o 'inch' / 'GTK_UNIT_INCH' o 'mm' / 'GTK_UNIT_MM' enum Gtk2::WrapMode o 'none' / 'GTK_WRAP_NONE' o 'char' / 'GTK_WRAP_CHAR' o 'word' / 'GTK_WRAP_WORD' o 'word-char' / 'GTK_WRAP_WORD_CHAR' SEE ALSO
Gtk2::SourceView2, Glib::Object COPYRIGHT
Copyright (C) 2009 by Emmanuel Rodriguez perl v5.14.2 2011-11-16 Gtk2::SourceView2::PrintCompositor(3pm)
All times are GMT -4. The time now is 08:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy