Is there a way to declare a function argument to take an anonymous enum? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!What is the size of an enum in C?typeof operator in CWays to save enums in databaseReturning an enum from a function in C?Get int value from enum in C#Convert objective-c typedef to its string equivalentIs the sizeof(enum) == sizeof(int), always?Getting attributes of Enum's valueHow to use c structure in python "?What is an idiomatic way of representing enums in Go?nonspecific enum function parameterenum to string in modern C++11 / C++14 / C++17 and future C++20
Why do early math courses focus on the cross sections of a cone and not on other 3D objects?
What is the origin of 落第?
Why is std::move not [[nodiscard]] in C++20?
Why complex landing gears are used instead of simple,reliability and light weight muscle wire or shape memory alloys?
Does the Mueller report show a conspiracy between Russia and the Trump Campaign?
Co-worker has annoying ringtone
Trying to understand entropy as a novice in thermodynamics
Is multiple magic items in one inherently imbalanced?
Is there hard evidence that the grant peer review system performs significantly better than random?
Nose gear failure in single prop aircraft: belly landing or nose-gear up landing?
How to change the tick of the color bar legend to black
How does light 'choose' between wave and particle behaviour?
How can I prevent/balance waiting and turtling as a response to cooldown mechanics
Does any scripture mention that forms of God or Goddess are symbolic?
What is the difference between CTSS and ITS?
I can't produce songs
Is openssl rand command cryptographically secure?
Getting out of while loop on console
Positioning dot before text in math mode
Understanding p-Values using an example
Can you force honesty by using the Speak with Dead and Zone of Truth spells together?
Resize vertical bars (absolute-value symbols)
Is there public access to the Meteor Crater in Arizona?
If Windows 7 doesn't support WSL, then what is "Subsystem for UNIX-based Applications"?
Is there a way to declare a function argument to take an anonymous enum?
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Data science time! April 2019 and salary with experience
The Ask Question Wizard is Live!What is the size of an enum in C?typeof operator in CWays to save enums in databaseReturning an enum from a function in C?Get int value from enum in C#Convert objective-c typedef to its string equivalentIs the sizeof(enum) == sizeof(int), always?Getting attributes of Enum's valueHow to use c structure in python "?What is an idiomatic way of representing enums in Go?nonspecific enum function parameterenum to string in modern C++11 / C++14 / C++17 and future C++20
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
If I have an anonymous enum, is there any way to pass a value of that type to a function? For example,
typedef struct
enum On, Off status;
int max_amps;
SWITCH;
void make_switches()
SWITCH switch1 = createSwitch( On, 15 );
SWITCH switch2 = createSwitch( Off, 20 );
SWITCH* createSwitch( ??? status, int max_amps )
SWITCH* new_switch = malloc( sizeof( SWITCH ) );
new_switch->status = status;
new_switch->max_amps = max_amps;
return new_switch;
I would like to pass the value of the anonymous enum into the createSwitch()
function. Is there any way to do this?
c enums
|
show 2 more comments
If I have an anonymous enum, is there any way to pass a value of that type to a function? For example,
typedef struct
enum On, Off status;
int max_amps;
SWITCH;
void make_switches()
SWITCH switch1 = createSwitch( On, 15 );
SWITCH switch2 = createSwitch( Off, 20 );
SWITCH* createSwitch( ??? status, int max_amps )
SWITCH* new_switch = malloc( sizeof( SWITCH ) );
new_switch->status = status;
new_switch->max_amps = max_amps;
return new_switch;
I would like to pass the value of the anonymous enum into the createSwitch()
function. Is there any way to do this?
c enums
1
I'm sure you already thought of this, but my suggestion is to promote theenum
to be a global, named type.
– Tom Karzes
Apr 12 at 3:52
3
Sure, you canSWITCH *createSwitch(int status...)
– Mark Benningfield
Apr 12 at 3:52
The value of an enumeration is similar to an integer, you can acceptstatus
as any type of integer
– liamcomp
Apr 12 at 3:52
1
Replacing???
withtypeof(On)
is a really bad idea for many reasons, not the least of which is that it isn't mentioned in the C specification. See also: stackoverflow.com/questions/12081502/typeof-operator-in-c
– user3386109
Apr 12 at 3:52
@user3386109: I guess I'm blind; where do you seetypeof(On)
?
– Mark Benningfield
Apr 12 at 3:56
|
show 2 more comments
If I have an anonymous enum, is there any way to pass a value of that type to a function? For example,
typedef struct
enum On, Off status;
int max_amps;
SWITCH;
void make_switches()
SWITCH switch1 = createSwitch( On, 15 );
SWITCH switch2 = createSwitch( Off, 20 );
SWITCH* createSwitch( ??? status, int max_amps )
SWITCH* new_switch = malloc( sizeof( SWITCH ) );
new_switch->status = status;
new_switch->max_amps = max_amps;
return new_switch;
I would like to pass the value of the anonymous enum into the createSwitch()
function. Is there any way to do this?
c enums
If I have an anonymous enum, is there any way to pass a value of that type to a function? For example,
typedef struct
enum On, Off status;
int max_amps;
SWITCH;
void make_switches()
SWITCH switch1 = createSwitch( On, 15 );
SWITCH switch2 = createSwitch( Off, 20 );
SWITCH* createSwitch( ??? status, int max_amps )
SWITCH* new_switch = malloc( sizeof( SWITCH ) );
new_switch->status = status;
new_switch->max_amps = max_amps;
return new_switch;
I would like to pass the value of the anonymous enum into the createSwitch()
function. Is there any way to do this?
c enums
c enums
asked Apr 12 at 3:39
Tyler DurdenTyler Durden
7,25474097
7,25474097
1
I'm sure you already thought of this, but my suggestion is to promote theenum
to be a global, named type.
– Tom Karzes
Apr 12 at 3:52
3
Sure, you canSWITCH *createSwitch(int status...)
– Mark Benningfield
Apr 12 at 3:52
The value of an enumeration is similar to an integer, you can acceptstatus
as any type of integer
– liamcomp
Apr 12 at 3:52
1
Replacing???
withtypeof(On)
is a really bad idea for many reasons, not the least of which is that it isn't mentioned in the C specification. See also: stackoverflow.com/questions/12081502/typeof-operator-in-c
– user3386109
Apr 12 at 3:52
@user3386109: I guess I'm blind; where do you seetypeof(On)
?
– Mark Benningfield
Apr 12 at 3:56
|
show 2 more comments
1
I'm sure you already thought of this, but my suggestion is to promote theenum
to be a global, named type.
– Tom Karzes
Apr 12 at 3:52
3
Sure, you canSWITCH *createSwitch(int status...)
– Mark Benningfield
Apr 12 at 3:52
The value of an enumeration is similar to an integer, you can acceptstatus
as any type of integer
– liamcomp
Apr 12 at 3:52
1
Replacing???
withtypeof(On)
is a really bad idea for many reasons, not the least of which is that it isn't mentioned in the C specification. See also: stackoverflow.com/questions/12081502/typeof-operator-in-c
– user3386109
Apr 12 at 3:52
@user3386109: I guess I'm blind; where do you seetypeof(On)
?
– Mark Benningfield
Apr 12 at 3:56
1
1
I'm sure you already thought of this, but my suggestion is to promote the
enum
to be a global, named type.– Tom Karzes
Apr 12 at 3:52
I'm sure you already thought of this, but my suggestion is to promote the
enum
to be a global, named type.– Tom Karzes
Apr 12 at 3:52
3
3
Sure, you can
SWITCH *createSwitch(int status...)
– Mark Benningfield
Apr 12 at 3:52
Sure, you can
SWITCH *createSwitch(int status...)
– Mark Benningfield
Apr 12 at 3:52
The value of an enumeration is similar to an integer, you can accept
status
as any type of integer– liamcomp
Apr 12 at 3:52
The value of an enumeration is similar to an integer, you can accept
status
as any type of integer– liamcomp
Apr 12 at 3:52
1
1
Replacing
???
with typeof(On)
is a really bad idea for many reasons, not the least of which is that it isn't mentioned in the C specification. See also: stackoverflow.com/questions/12081502/typeof-operator-in-c– user3386109
Apr 12 at 3:52
Replacing
???
with typeof(On)
is a really bad idea for many reasons, not the least of which is that it isn't mentioned in the C specification. See also: stackoverflow.com/questions/12081502/typeof-operator-in-c– user3386109
Apr 12 at 3:52
@user3386109: I guess I'm blind; where do you see
typeof(On)
?– Mark Benningfield
Apr 12 at 3:56
@user3386109: I guess I'm blind; where do you see
typeof(On)
?– Mark Benningfield
Apr 12 at 3:56
|
show 2 more comments
1 Answer
1
active
oldest
votes
As others have suggested, you can simply use an int
in the place of ???
.
This is because as per 6.7.2.2/3 of C11 standard (Committee draft):
The identifiers in an enumerator list are declared as constants that have type
int
and may appear wherever such are permitted.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55644158%2fis-there-a-way-to-declare-a-function-argument-to-take-an-anonymous-enum%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
As others have suggested, you can simply use an int
in the place of ???
.
This is because as per 6.7.2.2/3 of C11 standard (Committee draft):
The identifiers in an enumerator list are declared as constants that have type
int
and may appear wherever such are permitted.
add a comment |
As others have suggested, you can simply use an int
in the place of ???
.
This is because as per 6.7.2.2/3 of C11 standard (Committee draft):
The identifiers in an enumerator list are declared as constants that have type
int
and may appear wherever such are permitted.
add a comment |
As others have suggested, you can simply use an int
in the place of ???
.
This is because as per 6.7.2.2/3 of C11 standard (Committee draft):
The identifiers in an enumerator list are declared as constants that have type
int
and may appear wherever such are permitted.
As others have suggested, you can simply use an int
in the place of ???
.
This is because as per 6.7.2.2/3 of C11 standard (Committee draft):
The identifiers in an enumerator list are declared as constants that have type
int
and may appear wherever such are permitted.
edited Apr 12 at 10:53
answered Apr 12 at 4:26
P.WP.W
19.1k41860
19.1k41860
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55644158%2fis-there-a-way-to-declare-a-function-argument-to-take-an-anonymous-enum%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
I'm sure you already thought of this, but my suggestion is to promote the
enum
to be a global, named type.– Tom Karzes
Apr 12 at 3:52
3
Sure, you can
SWITCH *createSwitch(int status...)
– Mark Benningfield
Apr 12 at 3:52
The value of an enumeration is similar to an integer, you can accept
status
as any type of integer– liamcomp
Apr 12 at 3:52
1
Replacing
???
withtypeof(On)
is a really bad idea for many reasons, not the least of which is that it isn't mentioned in the C specification. See also: stackoverflow.com/questions/12081502/typeof-operator-in-c– user3386109
Apr 12 at 3:52
@user3386109: I guess I'm blind; where do you see
typeof(On)
?– Mark Benningfield
Apr 12 at 3:56