Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualKing Mir

Posted 11 February 2013 - 09:07 PM

Rather than using #define to define constants it's better to just make constants:

const size_t SIZE = 10;
This gives you type control and avoids macro expansion problems like the one you encountered.

Using #define is almost the same as using your a text editor's 'find-and-replace' function. There are some cases where it's useful, but usually it causes more problems than it solves.

 

Actually, I don't think this is true in C. I couldn't get this to work:
const int N = 10;

struct S {
  int i[N];
};

I had forgotten about this additional problem. Yeah, that's the other reason to use a macro. Constant variables are not constant expressions.


#1King Mir

Posted 11 February 2013 - 08:57 PM

Rather than using #define to define constants it's better to just make constants:

const size_t SIZE = 10;
This gives you type control and avoids macro expansion problems like the one you encountered.

Using #define is almost the same as using your a text editor's 'find-and-replace' function. There are some cases where it's useful, but usually it causes more problems than it solves.

 

Actually, I don't think this is true in C. I couldn't get this to work:
const int N = 10;

struct S {
  int i[N];
};

I had forgotten about this additional problem. Yeah, that's the other reason to us a macro.


PARTNERS