How do I best use the const keyword in C?
How do I best use the const keyword in C?
Use const
when you want to make it "read-only". It's that simple :)
Using const
is not only a good practice but improves the readability and comprehensibility of the code as well as helps prevent some common errors. Definitely do use const where appropriate.
const
is typed, #define
macros are not.
const
is scoped by C block, #define
applies to a file (or more strictly, a compilation unit).
const
is most useful with parameter passing. If you see const
used on a prototype with pointers, you know it is safe to pass your array or struct because the function will not alter it. No const
and it can.
Look at the definition for such as strcpy()
and you will see what I mean. Apply "const-ness" to function prototypes at the outset. Retro-fitting const
is not so much difficult as "a lot of work" (but OK if you get paid by the hour).
Also consider:
const char *s = "Hello World";
char *s = "Hello World";
which is correct, and why?