Consider the following macro definitions and invocation:
#define x x[0]
#define y(arg) arg
y(x)
This invocation expands to x[0] (tested on Visual C++ 2010, g++ 4.1, mcpp 2.7.2, and Wave).
Why? Specifically, why does it not expand to x[0][0]?
During macro replacement,
A parameter in the replacement list...is replaced by the cor...
What are the differences (in performance, usability and functionality) in using #pragma once and #if !defined MYHEADER_INCLUDED_ constructs? Or what is the difference between the two?
...
void main()
{
int xyz = 123; // original value
{ // code block starts
xyz++;
if(xyz < 1000)
xyz = 1;
} // code block ends
int original_value = xyz; // should be 123
}
void main()
{
int xyz = 123; // original value
MACRO_NAME(xyz = 123) // the macro takes the code code that should be ex...
I often see __WIN32, WIN32 or __WIN32__. I assume that this depends on the used preprocessor (either one from visual studio, or gcc etc).
Do I now have to check first for os and then for the used compiler? We are using here G++ 4.4.x, Visual Studio 2008 and Xcode (which I assume is a gcc again) and ATM we are using just __WIN32__, __APP...
e.g. a mapping for
Mac OS 10.6.3 aka Snow Leopard => __APPLE__ && __LP64__?
Windows 7, Windows XP => __WIN32__
Linux => __LINUX__
...
Hello, given the following structure:
struct nmslist_elem_s {
nmptr data;
struct nmslist_elem_s *next;
};
typedef struct nmslist_elem_s nmslist_elem;
Where:
typedef void* nmptr;
Is it possible to write a MACRO that retrieves the data from the element and cast it to the right type:
MACRO(type, element) that expands to *((ty...
Is it possible to write a macro that has a type and a value as its input parameters (MACRO(type,value)), and returns a valid pointer to a location that holds the submitted value.
This macro should perform like the following function, but in a more generic manner:
int *val_to_ptr(int val){
int *r = NULL;
r = nm_malloc(sizeof(*r)...
Not sure what to make of this error. Added -D_WIN32_WINNT=0x0501 to Visual Studio's "Command Line" options under Project Properties but it says it doesn't recognize it and the warning still appears.
I am also not sure how to add the Preprocessor Definition. :)
Thanks for any help!
1>Please define _WIN32_WINNT or
_WIN32_WINDOWS app...
Given the following code (it's a macro that generates code for a list data structure, based on the contained type).
list.h
#ifndef _LIST_H
#define _LIST_H
#ifdef __cplusplus
extern "C" {
#endif
#define LIST_TEMPLATE_INIT(type) \
typedef struct __list_s_##type { \
struct __list_s_##type *next; \
type value; \
...
Can someone points me the problem in the code when compiled with gcc 4.1.0.
#define X 10
int main()
{
double a = 1e-X;
return 0;
}
I am getting error:Exponent has no digits.
When i replace X with 10, it works fine. Also i checked with g++ -E command to see the file with preprocessors applied, it has not replaced X with 10.
I was ...
So I'm working on pypreprocessor which is a preprocessor that takes c-style directives and I've been able to make it work like a traditional preprocessor (it's self-consuming and executes postprocessed code on-the-fly) except that it breaks library imports.
The problem is. The preprocessor runs through the file, processes' it, outputs t...
Sorry I know this is basic, but perhaps it doesn't exist or I'm not googling the right words
is there and a if not (is that ifndef?) an AND and an OR? so I could do something like
if not DEBUG and MACOS
thanks
...
what is considered best practice when referring to a program's name? i've seen
#define PROGRAM_NAME "myprog"
printf("this is %s\n", PROGRAM_NAME);
as well as
printf("this is %s\n", argv[0]);
i know, that the second approach will give me ./myprog rather than myprog when the program is not called from $PATH and that the first approac...
Hi
I'm working on a project where I have code like the following:
#define NAME() Array
inline NAME()* NAME()_init (void* arg0){return (NAME()*)Object_init(arg0);}
But I get the following result:
inline Array* Array _init (void* arg0){return (Array*)Object_init(arg0);}
With a space between the "Array" and the "_init"
Because this ...
After reading some examples on stackoverflow, and following some of the answers for my previous questions (1), I've eventually come with a "strategy" for this.
I've come to this:
1) Have a declare section in the .h file. Here I will define the data-structure, and the accesing interface. Eg.:
/**
* LIST DECLARATION. (DOUBLE LINKED LI...
is there some way to embed pragma statement in macro with other statements?
I am trying to achieve something like:
#define DEFINE_DELETE_OBJECT(type) \
void delete_ ## type_(int handle); \
void delete_ ## type(int handle); \
#pragma weak de...
Possible Duplicate:
Difference between Enum and Define Statements
when should one use
enum {BUFFER = 1234};
over
#define BUFFER 1234
?
what are the advantages enum brings compared to #define? i know, that #define is just simple text substitution and enum names the constant somehow. but why would one need that at al...
I'm relatively new to C, and am curious what this syntax means in a function declaration:
int DEFAULT_CC foo(void)
where DEFAULT_CC is probably defined somewhere else as:
#define DEFAULT_CC "something"
(I realized the previous example I had up had to do with something completely irrelevant).
...
How can one achieve what the following code is trying to do?
#include "dir/*"
...
I tried
#error MY_DEFINE
But all that did is echo "MY_DEFINE" when it threw the error.
Thanks!
...