Skip to content

Instantly share code, notes, and snippets.

@gelisam
Created April 5, 2014 14:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gelisam/9993086 to your computer and use it in GitHub Desktop.
Save gelisam/9993086 to your computer and use it in GitHub Desktop.
Many, many valid C declarations
// primitive types which cannot be signed
//void ordinary_void;
bool ordinary_bool;
float ordinary_float;
double ordinary_double;
long double ordinary_long_double;
// types which can be signed
// char
char ordinary_signed_char;
signed char explicit_signed_char;
unsigned char unsigned_char;
// short
short ordinary_signed_short;
signed short explicit_signed_short;
unsigned short unsigned_short;
// int
int ordinary_signed_int;
signed int explicit_signed_int;
unsigned int unsigned_int;
// long
long ordinary_signed_long;
signed long explicit_signed_long;
unsigned long unsigned_long;
// long long
long long ordinary_signed_long_long;
signed long long explicit_signed_long_long;
unsigned long long unsigned_long_long;
// pointers
// primitive types which cannot be signed
void* ordinary_void_pointer;
bool* ordinary_bool_pointer;
float* ordinary_float_pointer;
double* ordinary_double_pointer;
long double* ordinary_long_double_pointer;
// types which can be signed
// char
char *ordinary_signed_char_pointer;
signed char *explicit_signed_char_pointer;
unsigned char *unsigned_char_pointer;
// short
short *ordinary_signed_short_pointer;
signed short *explicit_signed_short_pointer;
unsigned short *unsigned_short_pointer;
// int
int* ordinary_signed_int_pointer;
signed int* explicit_signed_int_pointer;
unsigned int* unsigned_int_pointer;
// long
long *ordinary_signed_long_pointer;
signed long *explicit_signed_long_pointer;
unsigned long *unsigned_long_pointer;
// long long
long long* ordinary_signed_long_long_pointer;
signed long long* explicit_signed_long_long_pointer;
unsigned long long* unsigned_long_long_pointer;
// arrays
// primitive types which cannot be signed
//void ordinary_void_array[10];
bool ordinary_bool_array[10];
float ordinary_float_array[10];
double ordinary_double_array[10];
long double ordinary_long_double_array[10];
// types which can be signed
// char
char ordinary_signed_char_array[10];
signed char explicit_signed_char_array[10];
unsigned char unsigned_char_array[10];
// short
short ordinary_signed_short_array[10];
signed short explicit_signed_short_array[10];
unsigned short unsigned_short_array[10];
// int
int ordinary_signed_int_array[10];
signed int explicit_signed_int_array[10];
unsigned int unsigned_int_array[10];
// long
long ordinary_signed_long_array[10];
signed long explicit_signed_long_array[10];
unsigned long unsigned_long_array[10];
// long long
long long ordinary_signed_long_long_array[10];
signed long long explicit_signed_long_long_array[10];
unsigned long long unsigned_long_long_array[10];
// pointers
// primitive types which cannot be signed
void* ordinary_void_pointer_array[10];
bool* ordinary_bool_pointer_array[10];
float* ordinary_float_pointer_array[10];
double* ordinary_double_pointer_array[10];
long double* ordinary_long_double_pointer_array[10];
// types which can be signed
// char
char *ordinary_signed_char_pointer_array[10];
signed char *explicit_signed_char_pointer_array[10];
unsigned char *unsigned_char_pointer_array[10];
// short
short *ordinary_signed_short_pointer_array[10];
signed short *explicit_signed_short_pointer_array[10];
unsigned short *unsigned_short_pointer_array[10];
// int
int* ordinary_signed_int_pointer_array[10];
signed int* explicit_signed_int_pointer_array[10];
unsigned int* unsigned_int_pointer_array[10];
// long
long *ordinary_signed_long_pointer_array[10];
signed long *explicit_signed_long_pointer_array[10];
unsigned long *unsigned_long_pointer_array[10];
// long long
long long* ordinary_signed_long_long_pointer_array[10];
signed long long* explicit_signed_long_long_pointer_array[10];
unsigned long long* unsigned_long_long_pointer_array[10];
// structs
// primitive types which cannot be signed
//void ordinary_void;
struct ordinary_bool_struct {bool ordinary_bool_member;};
struct ordinary_float_struct {float ordinary_float_member;};
struct ordinary_double_struct {double ordinary_double_member;};
struct ordinary_long_double_struct {long double ordinary_long_double_member;};
// types which can be signed
// char
struct ordinary_signed_char_struct {char ordinary_signed_char_member;};
struct explicit_signed_char_struct {signed char explicit_signed_char_member;};
struct unsigned_char_struct {unsigned char unsigned_char_member;};
// short
struct ordinary_signed_short_struct {short ordinary_signed_short_member;};
struct explicit_signed_short_struct {signed short explicit_signed_short_member;};
struct unsigned_short_struct {unsigned short unsigned_short_member;};
// int
struct ordinary_signed_int_struct {int ordinary_signed_int_member;};
struct explicit_signed_int_struct {signed int explicit_signed_int_member;};
struct unsigned_int_struct {unsigned int unsigned_int_member;};
// long
struct ordinary_signed_long_struct {long ordinary_signed_long_member;};
struct explicit_signed_long_struct {signed long explicit_signed_long_member;};
struct unsigned_long_struct {unsigned long unsigned_long_member;};
// long long
struct ordinary_signed_long_long_struct {long long ordinary_signed_long_long_member;};
struct explicit_signed_long_long_struct {signed long long explicit_signed_long_long_member;};
struct unsigned_long_long_struct {unsigned long long unsigned_long_long_member;};
// pointers
// primitive types which cannot be signed
struct ordinary_void_pointer_struct {void* ordinary_void_pointer_member;};
struct ordinary_bool_pointer_struct {bool* ordinary_bool_pointer_member;};
struct ordinary_float_pointer_struct {float* ordinary_float_pointer_member;};
struct ordinary_double_pointer_struct {double* ordinary_double_pointer_member;};
struct ordinary_long_double_pointer_struct {long double* ordinary_long_double_pointer_member;};
// types which can be signed
// char
struct ordinary_signed_char_pointer_struct {char *ordinary_signed_char_pointer_member;};
struct explicit_signed_char_pointer_struct {signed char *explicit_signed_char_pointer_member;};
struct unsigned_char_pointer_struct {unsigned char *unsigned_char_pointer_member;};
// short
struct ordinary_signed_short_pointer_struct {short *ordinary_signed_short_pointer_member;};
struct explicit_signed_short_pointer_struct {signed short *explicit_signed_short_pointer_member;};
struct unsigned_short_pointer_struct {unsigned short *unsigned_short_pointer_member;};
// int
struct ordinary_signed_int_pointer_struct {int* ordinary_signed_int_pointer_member;};
struct explicit_signed_int_pointer_struct {signed int* explicit_signed_int_pointer_member;};
struct unsigned_int_pointer_struct {unsigned int* unsigned_int_pointer_member;};
// long
struct ordinary_signed_long_pointer_struct {long *ordinary_signed_long_pointer_member;};
struct explicit_signed_long_pointer_struct {signed long *explicit_signed_long_pointer_member;};
struct unsigned_long_pointer_struct {unsigned long *unsigned_long_pointer_member;};
// long long
struct ordinary_signed_long_long_pointer_struct {long long* ordinary_signed_long_long_pointer_member;};
struct explicit_signed_long_long_pointer_struct {signed long long* explicit_signed_long_long_pointer_member;};
struct unsigned_long_long_pointer_struct {unsigned long long* unsigned_long_long_pointer_member;};
// arrays
// primitive types which cannot be signed
//struct ordinary_void_array_struct {void ordinary_void_array_member[10];};
struct ordinary_bool_array_struct {bool ordinary_bool_array_member[10];};
struct ordinary_float_array_struct {float ordinary_float_array_member[10];};
struct ordinary_double_array_struct {double ordinary_double_array_member[10];};
struct ordinary_long_double_array_struct {long double ordinary_long_double_array_member[10];};
// types which can be signed
// char
struct ordinary_signed_char_array_struct {char ordinary_signed_char_array_member[10];};
struct explicit_signed_char_array_struct {signed char explicit_signed_char_array_member[10];};
struct unsigned_char_array_struct {unsigned char unsigned_char_array_member[10];};
// short
struct ordinary_signed_short_array_struct {short ordinary_signed_short_array_member[10];};
struct explicit_signed_short_array_struct {signed short explicit_signed_short_array_member[10];};
struct unsigned_short_array_struct {unsigned short unsigned_short_array_member[10];};
// int
struct ordinary_signed_int_array_struct {int ordinary_signed_int_array_member[10];};
struct explicit_signed_int_array_struct {signed int explicit_signed_int_array_member[10];};
struct unsigned_int_array_struct {unsigned int unsigned_int_array_member[10];};
// long
struct ordinary_signed_long_array_struct {long ordinary_signed_long_array_member[10];};
struct explicit_signed_long_array_struct {signed long explicit_signed_long_array_member[10];};
struct unsigned_long_array_struct {unsigned long unsigned_long_array_member[10];};
// long long
struct ordinary_signed_long_long_array_struct {long long ordinary_signed_long_long_array_member[10];};
struct explicit_signed_long_long_array_struct {signed long long explicit_signed_long_long_array_member[10];};
struct unsigned_long_long_array_struct {unsigned long long unsigned_long_long_array_member[10];};
// pointers
// primitive types which cannot be signed
struct ordinary_void_pointer_array_struct {void* ordinary_void_pointer_array_member[10];};
struct ordinary_bool_pointer_array_struct {bool* ordinary_bool_pointer_array_member[10];};
struct ordinary_float_pointer_array_struct {float* ordinary_float_pointer_array_member[10];};
struct ordinary_double_pointer_array_struct {double* ordinary_double_pointer_array_member[10];};
struct ordinary_long_double_pointer_array_struct {long double* ordinary_long_double_pointer_array_member[10];};
// types which can be signed
// char
struct ordinary_signed_char_pointer_array_struct {char *ordinary_signed_char_pointer_array_member[10];};
struct explicit_signed_char_pointer_array_struct {signed char *explicit_signed_char_pointer_array_member[10];};
struct unsigned_char_pointer_array_struct {unsigned char *unsigned_char_pointer_array_member[10];};
// short
struct ordinary_signed_short_pointer_array_struct {short *ordinary_signed_short_pointer_array_member[10];};
struct explicit_signed_short_pointer_array_struct {signed short *explicit_signed_short_pointer_array_member[10];};
struct unsigned_short_pointer_array_struct {unsigned short *unsigned_short_pointer_array_member[10];};
// int
struct ordinary_signed_int_pointer_array_struct {int* ordinary_signed_int_pointer_array_member[10];};
struct explicit_signed_int_pointer_array_struct {signed int* explicit_signed_int_pointer_array_member[10];};
struct unsigned_int_pointer_array_struct {unsigned int* unsigned_int_pointer_array_member[10];};
// long
struct ordinary_signed_long_pointer_array_struct {long *ordinary_signed_long_pointer_array_member[10];};
struct explicit_signed_long_pointer_array_struct {signed long *explicit_signed_long_pointer_array_member[10];};
struct unsigned_long_pointer_array_struct {unsigned long *unsigned_long_pointer_array_member[10];};
// long long
struct ordinary_signed_long_long_pointer_array_struct {long long* ordinary_signed_long_long_pointer_array_member[10];};
struct explicit_signed_long_long_pointer_array_struct {signed long long* explicit_signed_long_long_pointer_array_member[10];};
struct unsigned_long_long_pointer_array_struct {unsigned long long* unsigned_long_long_pointer_array_member[10];};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment