In this program
#include <stdio.h>
typedef char byte;
int main (void)
{
int byte = 10;
byte var_byte;
printf("\n Test program: %d\n", byte);
}
the variable name bytehides the typedef name.
From Standard C (6.2.1 Identifier Areas)
- ... , . , ( ) ( ). , ; ( ) .
, typedef .
typedef ( ), , , .
.
#include <stdio.h>
typedef char byte;
void f( void );
int main (void)
{
int byte = 10;
printf("\n Test program: %d\n", byte);
f();
}
void f( void )
{
byte c = 'A';
printf( "%c\n", c );
}
main ( ) typedef .
f , typedef, , , typedef.
, ( ++)
#include <stdio.h>
size_t byte = 255;
int main(void)
{
typedef int byte[byte];
{
byte byte;
printf( "sizeof( byte ) = %zu\n", sizeof( byte ) );
}
return 0;
}
sizeof( byte ) = 1020
byte
size_t byte = 255;
main typedef name byte.
typedef int byte[byte];
byte . typedef
typedef int byte[byte];
byte byte.
byte, typedef.
byte byte;
,
sizeof( byte )
, typedef.