| #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL |
| #define MIN(A,B) ((A) <= (B) ? (A) : (B)) |
| least = MIN(*p++, b); |
| while(1){ } |
| for(;;){ } |
| Loop:...goto Loop; |
| a) int a; // An integer b) int *a; // A pointer to an integer c) int **a; // A pointer to a pointer to an integer d) int a[10]; // An array of 10 integers e) int *a[10]; // An array of 10 pointers to integers f) int (*a)[10]; // A pointer to an array of 10 integers g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer |
| const int a;int const a;const int *a;int * const a;int const * a const; /******/ |
| int square(volatile int *ptr){ return *ptr * *ptr;} |
| int square(volatile int *ptr) {int a,b;a = *ptr;b = *ptr;return a * b;} |
| long square(volatile int *ptr) {int a;a = *ptr;return a * a;} |
| #define BIT3 (0x1 << 3)static int a; void set_bit3(void) {a |= BIT3;}void clear_bit3(void) {a &= ~BIT3;} |
| int *ptr;ptr = (int *)0x67a9;*ptr = 0xaa55; A more obscure approach is: |
| *(int * const)(0x67a9) = 0xaa55; |
| __interrupt double compute_area (double radius) {double area = PI * radius * radius;printf("\nArea = %f", area);return area;} |
| void foo(void){unsigned int a = 6;int b = -20;(a+b > 6) ? puts("> 6") : puts("<= 6");} |
| unsigned int zero = 0;unsigned int compzero = 0xFFFF; /*1's complement of zero */ |
| unsigned int compzero = ~0; |
| char *ptr;if ((ptr = (char *)malloc(0)) == NULL) puts("Got a null pointer");elseputs("Got a valid pointer"); |
| #define dPS struct s *typedef struct s * tPS; |
| dPS p1,p2;tPS p3,p4; |
| struct s * p1, p2;. |
| int a = 5, b = 7, c;c = a+++b; |
| c = a++ + b; |