I want to share certain C string constants across multiple c files. The constants span multiple lines for readability:
const char *QUERY = \"SELECT a,b,c \"
In some .c file, write what you've written. In the appropriate .h file, write
extern const char* QUERY; //just declaration
Include the .h file wherever you need the constant
No other good way :) HTH
You could use static consts, to all intents and purposes your effect will be achieved.
myext.h:
#ifndef _MYEXT_H
#define _MYEXT_H
static const int myx = 245;
static const unsigned long int myy = 45678;
static const double myz = 3.14;
#endif
myfunc.h:
#ifndef MYFUNC_H
#define MYFUNC_H
void myfunc(void);
#endif
myfunc.c:
#include "myext.h"
#include "myfunc.h"
#include <stdio.h>
void myfunc(void)
{
printf("%d\t%lu\t%f\n", myx, myy, myz);
}
myext.c:
#include "myext.h"
#include "myfunc.h"
#include <stdio.h>
int main()
{
printf("%d\t%lu\t%f\n", myx, myy, myz);
myfunc();
return 0;
}
You can simply #define
them separate
#define QUERY1 "SELECT a,b,c "
#define QUERY2 "FROM table..."
and then join them in one definition
#define QUERY QUERY1 QUERY2
There are several ways