Exercise-1 : “integer modifier and qualifier” combinations
Check if below combination of modifiers, qualifiers are allowed in different contexts as depicted in the table
Combination |
sizeof() |
Local variables |
Global variables |
Function parameters |
Function return type |
Inside structure |
Inside union |
int a; |
|||||||
auto int a; |
|||||||
register int a; |
|||||||
static int a; |
|||||||
extern int a; |
|||||||
typedef int a; |
|||||||
short int a; |
|||||||
long int a; |
|||||||
signed int a; |
|||||||
unsigned int a; |
|||||||
const int a; |
|||||||
volatile int a; |
|||||||
auto register int a; |
|||||||
auto static int a; |
|||||||
auto extern int a; |
|||||||
auto typedef int a; |
|||||||
register auto int a; |
|||||||
register static int a; |
|||||||
register extern int a; |
|||||||
register typedef int a; |
|||||||
static auto int a; |
|||||||
static register int a; |
|||||||
static extern int a; |
|||||||
static typedef int a; |
|||||||
extern auto int a; |
|||||||
extern register int a; |
|||||||
extern static int a; |
|||||||
extern typedef int a; |
|||||||
typedef auto int a; |
|||||||
typedef register int a; |
|||||||
typedef static int a; |
|||||||
typedef extern int a; |
|||||||
auto short int a; |
|||||||
auto long int a; |
|||||||
auto signed int a; |
|||||||
auto unsigned int a; |
|||||||
register short int a; |
|||||||
register long int a; |
|||||||
register signed int a; |
|||||||
register unsigned int a; |
|||||||
static short int a; |
|||||||
static long int a; |
|||||||
static signed int a; |
|||||||
static unsigned int a; |
|||||||
extern short int a; |
|||||||
extern long int a; |
|||||||
extern signed int a; |
|||||||
extern unsigned int a; |
|||||||
typedef short int a; |
|||||||
typedef long int a; |
|||||||
typedef signed int a; |
|||||||
typedef unsigned int a; |
|||||||
auto const int a; |
|||||||
auto volatile int a; |
|||||||
register const int a; |
|||||||
register volatile int a; |
|||||||
static const int a; |
|||||||
static volatile int a; |
|||||||
extern const int a; |
|||||||
extern volatile int a; |
|||||||
typedef const int a; |
|||||||
typedef volatile int a; |
|||||||
short const int a; |
|||||||
short volatile int a; |
|||||||
long const int a; |
|||||||
long volatile int a; |
|||||||
signed const int a; |
|||||||
signed volatile int a; |
|||||||
unsigned const int a; |
|||||||
unsigned volatile int a; |
|||||||
auto short const int a; |
|||||||
auto short volatile int a; |
|||||||
auto long const int a; |
|||||||
auto long volatile int a; |
|||||||
auto signed const int a; |
|||||||
auto signed volatile int a; |
|||||||
auto unsigned const int a; |
|||||||
auto unsigned volatile int a; |
|||||||
register short const int a; |
|||||||
register short volatile int a; |
|||||||
register long const int a; |
|||||||
register long volatile int a; |
|||||||
register signed const int a; |
|||||||
register signed volatile int a; |
|||||||
register unsigned const int a; |
|||||||
register unsigned volatile int a; |
|||||||
static short const int a; |
|||||||
static short volatile int a; |
|||||||
static long const int a; |
|||||||
static long volatile int a; |
|||||||
static signed const int a; |
|||||||
static signed volatile int a; |
|||||||
static unsigned const int a; |
|||||||
static unsigned volatile int a; |
|||||||
extern short const int a; |
|||||||
extern short volatile int a; |
|||||||
extern long const int a; |
|||||||
extern long volatile int a; |
|||||||
extern signed const int a; |
|||||||
extern signed volatile int a; |
|||||||
extern unsigned const int a; |
|||||||
extern unsigned volatile int a; |
|||||||
typedef short const int a; |
|||||||
typedef short volatile int a; |
|||||||
typedef long const int a; |
|||||||
typedef long volatile int a; |
|||||||
typedef signed const int a; |
|||||||
typedef signed volatile int a; |
|||||||
typedef unsigned const int a; |
|||||||
typedef unsigned volatile int a; |
|||||||
int *a; |
|||||||
auto int *a; |
|||||||
register int *a; |
|||||||
static int *a; |
|||||||
extern int *a; |
|||||||
typedef int *a; |
|||||||
short int *a; |
|||||||
long int *a; |
|||||||
signed int *a; |
|||||||
unsigned int *a; |
|||||||
const int *a; |
|||||||
volatile int *a; |
|||||||
auto register int *a; |
|||||||
auto static int *a; |
|||||||
auto extern int *a; |
|||||||
auto typedef int *a; |
|||||||
register auto int *a; |
|||||||
register static int *a; |
|||||||
register extern int *a; |
|||||||
register typedef int *a; |
|||||||
static auto int *a; |
|||||||
static register int *a; |
|||||||
static extern int *a; |
|||||||
static typedef int *a; |
|||||||
extern auto int *a; |
|||||||
extern register int *a; |
|||||||
extern static int *a; |
|||||||
extern typedef int *a; |
|||||||
typedef auto int *a; |
|||||||
typedef register int *a; |
|||||||
typedef static int *a; |
|||||||
typedef extern int *a; |
|||||||
auto short int *a; |
|||||||
auto long int *a; |
|||||||
auto signed int *a; |
|||||||
auto unsigned int *a; |
|||||||
register short int *a; |
|||||||
register long int *a; |
|||||||
register signed int *a; |
|||||||
register unsigned int *a; |
|||||||
static short int *a; |
|||||||
static long int *a; |
|||||||
static signed int *a; |
|||||||
static unsigned int *a; |
|||||||
extern short int *a; |
|||||||
extern long int *a; |
|||||||
extern signed int *a; |
|||||||
extern unsigned int *a; |
|||||||
typedef short int * a; |
|||||||
typedef long int * a; |
|||||||
typedef signed int * a; |
|||||||
typedef unsigned int * a; |
|||||||
auto const int *a; |
|||||||
auto volatile int *a; |
|||||||
register const int *a; |
|||||||
register volatile int *a; |
|||||||
static const int *a; |
|||||||
static volatile int *a; |
|||||||
extern const int *a; |
|||||||
extern volatile int *a; |
|||||||
typedef const int *a; |
|||||||
typedef volatile int *a; |
|||||||
short const int *a; |
|||||||
short volatile int *a; |
|||||||
long const int *a; |
|||||||
long volatile int *a; |
|||||||
signed const int *a; |
|||||||
signed volatile int *a; |
|||||||
unsigned const int *a; |
|||||||
unsigned volatile int *a; |
|||||||
auto short const int *a; |
|||||||
auto short volatile int *a; |
|||||||
auto long const int *a; |
|||||||
auto long volatile int *a; |
|||||||
auto signed const int *a; |
|||||||
auto signed volatile int *a; |
|||||||
auto unsigned const int *a; |
|||||||
auto unsigned volatile int *a; |
|||||||
register short const int *a; |
|||||||
register short volatile int *a; |
|||||||
register long const int *a; |
|||||||
register long volatile int *a; |
|||||||
register signed const int *a; |
|||||||
register signed const int *a; |
|||||||
register signed const int *a; |
|||||||
register signed const int *a; |
|||||||
static short const int *a; |
|||||||
static short volatile int *a; |
|||||||
static long const int *a; |
|||||||
static long volatile int *a; |
|||||||
static signed const int *a; |
|||||||
static signed volatile int *a; |
|||||||
static unsigned const int *a; |
|||||||
static unsigned volatile int *a; |
|||||||
extern short const int *a; |
|||||||
extern short volatile int *a; |
|||||||
extern long const int *a; |
|||||||
extern long volatile int *a; |
|||||||
extern signed const int *a; |
|||||||
extern signed volatile int *a; |
|||||||
extern unsigned const int *a; |
|||||||
extern unsigned volatile int *a; |
|||||||
typedef short const int *a; |
|||||||
typedef short volatile int *a; |
|||||||
typedef long const int *a; |
|||||||
typedef long volatile int *a; |
|||||||
typedef signed const int *a; |
|||||||
typedef signed volatile int *a; |
|||||||
typedef unsigned const int *a; |
|||||||
typedef unsigned volatile int *a; |
|||||||
int a[10]; |
|||||||
auto int a[10]; |
|||||||
register int a[10]; |
|||||||
static int a[10]; |
|||||||
extern int a[10]; |
|||||||
typedef int a[10]; |
|||||||
short int a[10]; |
|||||||
long int a[10]; |
|||||||
signed int a[10]; |
|||||||
unsigned int a[10]; |
|||||||
const int a[10]; |
|||||||
volatile int a[10]; |
|||||||
auto register int a[10]; |
|||||||
auto static int a[10]; |
|||||||
auto extern int a[10]; |
|||||||
auto typedef int a[10]; |
|||||||
register auto int a[10]; |
|||||||
register static int a[10]; |
|||||||
register extern int a[10]; |
|||||||
register typedef int a[10]; |
|||||||
static auto int a[10]; |
|||||||
static register int a[10]; |
|||||||
static extern int a[10]; |
|||||||
static typedef int a[10]; |
|||||||
extern auto int a[10]; |
|||||||
extern register int a[10]; |
|||||||
extern static int a[10]; |
|||||||
extern typedef int a[10]; |
|||||||
typedef auto int a[10]; |
|||||||
typedef register int a[10]; |
|||||||
typedef static int a[10]; |
|||||||
typedef extern int a[10]; |
|||||||
auto short int a[10]; |
|||||||
auto long int a[10]; |
|||||||
auto signed int a[10]; |
|||||||
auto unsigned int a[10]; |
|||||||
register short int a[10]; |
|||||||
register long int a[10]; |
|||||||
register signed int a[10]; |
|||||||
register unsigned int a[10]; |
|||||||
static short int a[10]; |
|||||||
static long int a[10]; |
|||||||
static signed int a[10]; |
|||||||
static unsigned int a[10]; |
|||||||
extern short int a[10]; |
|||||||
extern long int a[10]; |
|||||||
extern signed int a[10]; |
|||||||
extern unsigned int a[10]; |
|||||||
typedef short int a[10]; |
|||||||
typedef long int a[10]; |
|||||||
typedef signed int a[10]; |
|||||||
typedef unsigned int a[10]; |
|||||||
auto const int a[10]; |
|||||||
auto volatile int a[10]; |
|||||||
register const int a[10]; |
|||||||
register volatile int a[10]; |
|||||||
static const int a[10]; |
|||||||
static volatile int a[10]; |
|||||||
extern const int a[10]; |
|||||||
extern volatile int a[10]; |
|||||||
typedef const int a[10]; |
|||||||
typedef volatile int a[10]; |
|||||||
short const int a[10]; |
|||||||
short volatile int a[10]; |
|||||||
long const int a[10]; |
|||||||
long volatile int a[10]; |
|||||||
signed const int a[10]; |
|||||||
signed volatile int a[10]; |
|||||||
unsigned const int a[10]; |
|||||||
unsigned volatile int a[10]; |
|||||||
auto short const int a[10]; |
|||||||
auto short volatile int a[10]; |
|||||||
auto long const int a[10]; |
|||||||
auto long volatile int a[10]; |
|||||||
auto signed const int a[10]; |
|||||||
auto signed volatile int a[10]; |
|||||||
auto unsigned const int a[10]; |
|||||||
auto unsigned volatile int a[10]; |
|||||||
register short const int a[10]; |
|||||||
register short volatile int a[10]; |
|||||||
register short volatile int a[10]; |
|||||||
register short volatile int a[10]; |
|||||||
register short volatile int a[10]; |
|||||||
register short volatile int a[10]; |
|||||||
register short volatile int a[10]; |
|||||||
register short volatile int a[10]; |
|||||||
static short const int a[10]; |
|||||||
static short volatile int a[10]; |
|||||||
static long const int a[10]; |
|||||||
static long volatile int a[10]; |
|||||||
static signed const int a[10]; |
|||||||
static signed volatile int a[10]; |
|||||||
static unsigned const int a[10]; |
|||||||
static unsigned volatile int a[10]; |
|||||||
extern short const int a[10]; |
|||||||
extern short volatile int a[10]; |
|||||||
extern long const int a[10]; |
|||||||
extern long volatile int a[10]; |
|||||||
extern signed const int a[10]; |
|||||||
extern signed volatile int a[10]; |
|||||||
extern unsigned const int a[10]; |
|||||||
extern unsigned volatile int a[10]; |
|||||||
typedef short const int a[10]; |
|||||||
typedef short volatile int a[10]; |
|||||||
typedef long const int a[10]; |
|||||||
typedef long volatile int a[10]; |
|||||||
typedef signed const int a[10]; |
|||||||
typedef signed volatile int a[10]; |
|||||||
typedef unsigned const int a[10]; |
|||||||
typedef unsigned volatile int a[10]; |
|||||||
int **a; |
|||||||
auto int **a; |
|||||||
register int **a; |
|||||||
static int **a; |
|||||||
extern int **a; |
|||||||
typedef int **a; |
|||||||
short int **a; |
|||||||
long int **a; |
|||||||
signed int **a; |
|||||||
unsigned int **a; |
|||||||
const int **a; |
|||||||
volatile int **a; |
|||||||
auto register int **a; |
|||||||
auto static int **a; |
|||||||
auto extern int **a; |
|||||||
auto typedef int **a; |
|||||||
register auto int **a; |
|||||||
register static int **a; |
|||||||
register extern int **a; |
|||||||
register typedef int **a; |
|||||||
static auto int **a; |
|||||||
static register int **a; |
|||||||
static extern int **a; |
|||||||
static typedef int **a; |
|||||||
extern auto int **a; |
|||||||
extern register int **a; |
|||||||
extern static int **a; |
|||||||
extern typedef int **a; |
|||||||
typedef auto int **a; |
|||||||
typedef register int **a; |
|||||||
typedef static int **a; |
|||||||
typedef extern int **a; |
|||||||
auto short int **a; |
|||||||
auto long int **a; |
|||||||
auto signed int **a; |
|||||||
auto unsigned int **a; |
|||||||
register short int **a; |
|||||||
register long int **a; |
|||||||
register signed int **a; |
|||||||
register unsigned int **a; |
|||||||
static short int **a; |
|||||||
static long int **a; |
|||||||
static signed int **a; |
|||||||
static unsigned int **a; |
|||||||
extern short int **a; |
|||||||
extern long int **a; |
|||||||
extern signed int **a; |
|||||||
extern unsigned int **a; |
|||||||
typedef short int **a; |
|||||||
typedef long int **a; |
|||||||
typedef signed int **a; |
|||||||
typedef unsigned int **a; |
|||||||
auto const int **a |
|||||||
auto volatile int **a; |
|||||||
register const int **a |
|||||||
register volatile int **a; |
|||||||
static const int **a |
|||||||
static volatile int **a; |
|||||||
extern const int **a |
|||||||
extern volatile int **a; |
|||||||
typedef const int **a |
|||||||
typedef volatile int **a; |
|||||||
short const int **a; |
|||||||
short volatile int **a; |
|||||||
long const int **a; |
|||||||
long volatile int **a; |
|||||||
signed const int **a; |
|||||||
signed volatile int **a; |
|||||||
unsigned const int **a; |
|||||||
unsigned volatile int **a; |
|||||||
auto short const int **a; |
|||||||
auto short volatile int **a; |
|||||||
auto long const int **a; |
|||||||
auto long volatile int **a; |
|||||||
auto signed const int **a; |
|||||||
auto signed volatile int **a; |
|||||||
auto unsigned const int **a; |
|||||||
auto unsigned volatile int **a; |
|||||||
register short const int **a; |
|||||||
register short volatile int **a; |
|||||||
register long const int **a; |
|||||||
register long volatile int **a; |
|||||||
register signed const int **a; |
|||||||
register signed volatile int **a; |
|||||||
register unsigned const int **a; |
|||||||
register unsigned volatile int **a; |
|||||||
static short const int **a; |
|||||||
static short volatile int **a; |
|||||||
static long const int **a; |
|||||||
static long volatile int **a; |
|||||||
static signed const int **a; |
|||||||
static signed volatile int **a; |
|||||||
static unsigned const int **a; |
|||||||
static unsigned volatile int **a; |
|||||||
extern short const int **a; |
|||||||
extern short volatile int **a; |
|||||||
extern long const int **a; |
|||||||
extern long volatile int **a; |
|||||||
extern signed const int **a; |
|||||||
extern signed volatile int **a; |
|||||||
extern unsigned const int **a; |
|||||||
extern unsigned volatile int **a; |
|||||||
typedef short const int **a; |
|||||||
typedef short volatile int **a; |
|||||||
typedef long const int **a; |
|||||||
typedef long volatile int **a; |
|||||||
typedef signed const int **a; |
|||||||
typedef signed volatile int **a; |
|||||||
typedef unsigned const int **a; |
|||||||
typedef unsigned volatile int **a; |
|||||||
int a[10][10]; |
|||||||
auto int a[10][10]; |
|||||||
register int a[10][10]; |
|||||||
static int a[10][10]; |
|||||||
extern int a[10][10]; |
|||||||
typedef int a[10][10]; |
|||||||
short int a[10][10]; |
|||||||
long int a[10][10]; |
|||||||
signed int a[10][10]; |
|||||||
unsigned int a[10][10]; |
|||||||
const int a[10][10]; |
|||||||
volatile int a[10][10]; |
|||||||
auto register int a[10][10]; |
|||||||
auto static int a[10][10]; |
|||||||
auto extern int a[10][10]; |
|||||||
auto typedef int a[10][10]; |
|||||||
register auto int a[10][10]; |
|||||||
register static int a[10][10]; |
|||||||
register extern int a[10][10]; |
|||||||
register typedef int a[10][10]; |
|||||||
static auto int a[10][10]; |
|||||||
static register int a[10][10]; |
|||||||
static extern int a[10][10]; |
|||||||
static typedef int a[10][10]; |
|||||||
extern auto int a[10][10]; |
|||||||
extern register int a[10][10]; |
|||||||
extern static int a[10][10]; |
|||||||
extern typedef int a[10][10]; |
|||||||
typedef auto int a[10][10]; |
|||||||
typedef register int a[10][10]; |
|||||||
typedef static int a[10][10]; |
|||||||
typedef extern int a[10][10]; |
|||||||
auto short int a[10][10]; |
|||||||
auto long int a[10][10]; |
|||||||
auto signed int a[10][10]; |
|||||||
auto unsigned int a[10][10]; |
|||||||
register short int a[10][10]; |
|||||||
register long int a[10][10]; |
|||||||
register signed int a[10][10]; |
|||||||
register unsigned int a[10][10]; |
|||||||
static short int a[10][10]; |
|||||||
static long int a[10][10]; |
|||||||
static signed int a[10][10]; |
|||||||
static unsigned int a[10][10]; |
|||||||
extern short int a[10][10]; |
|||||||
extern long int a[10][10]; |
|||||||
extern signed int a[10][10]; |
|||||||
extern unsigned int a[10][10]; |
|||||||
typedef short int a[10][10]; |
|||||||
typedef long int a[10][10]; |
|||||||
typedef signed int a[10][10]; |
|||||||
typedef unsigned int a[10][10]; |
|||||||
auto const int a[10][10]; |
|||||||
auto volatile int a[10][10]; |
|||||||
register const int a[10][10]; |
|||||||
register volatile int a[10][10]; |
|||||||
static const int a[10][10]; |
|||||||
static volatile int a[10][10]; |
|||||||
extern const int a[10][10]; |
|||||||
extern volatile int a[10][10]; |
|||||||
typedef const int a[10][10]; |
|||||||
typedef volatile int a[10][10]; |
|||||||
short const int a[10][10]; |
|||||||
short volatile int a[10][10]; |
|||||||
long const int a[10][10]; |
|||||||
long volatile int a[10][10]; |
|||||||
signed const int a[10][10]; |
|||||||
signed volatile int a[10][10]; |
|||||||
unsigned const int a[10][10]; |
|||||||
unsigned volatile int a[10][10]; |
|||||||
auto short const int a[10][10]; |
|||||||
auto short volatile int a[10][10]; |
|||||||
auto long const int a[10][10]; |
|||||||
auto long volatile int a[10][10]; |
|||||||
auto signed const int a[10][10]; |
|||||||
auto signed volatile int a[10][10]; |
|||||||
auto unsigned const int a[10][10]; |
|||||||
auto unsigned volatile int a[10][10]; |
|||||||
register short const int a[10][10]; |
|||||||
register short volatile int a[10][10]; |
|||||||
register short volatile int a[10][10]; |
|||||||
register short volatile int a[10][10]; |
|||||||
register short volatile int a[10][10]; |
|||||||
register short volatile int a[10][10]; |
|||||||
register short volatile int a[10][10]; |
|||||||
register short volatile int a[10][10]; |
|||||||
static short const int a[10][10]; |
|||||||
static short volatile int a[10][10]; |
|||||||
static long const int a[10][10]; |
|||||||
static long volatile int a[10][10]; |
|||||||
static signed const int a[10][10]; |
|||||||
static signed volatile int a[10][10]; |
|||||||
static unsigned const int a[10][10]; |
|||||||
static unsigned volatile int a[10][10]; |
|||||||
extern short const int a[10][10]; |
|||||||
extern short volatile int a[10][10]; |
|||||||
extern long const int a[10][10]; |
|||||||
extern long volatile int a[10][10]; |
|||||||
extern signed const int a[10][10]; |
|||||||
extern signed volatile int a[10][10]; |
|||||||
extern unsigned const int a[10][10]; |
|||||||
extern unsigned volatile int a[10][10]; |
|||||||
typedef short const int a[10][10]; |
|||||||
typedef short volatile int a[10][10]; |
|||||||
typedef long const int a[10][10]; |
|||||||
typedef long volatile int a[10][10]; |
|||||||
typedef signed const int a[10][10]; |
|||||||
typedef signed volatile int a[10][10]; |
|||||||
typedef unsigned const int a[10][10]; |
|||||||
typedef unsigned volatile int a[10][10]; |