Created
April 5, 2014 14:59
-
-
Save gelisam/9993086 to your computer and use it in GitHub Desktop.
Many, many valid C declarations
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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