void func(void) {
short a = -2;
unsigned int b = 1;
b += a;
int c = -1;
unsigned short d = c * 256;
c <<= 4;
int e = 2;
e = ~e | 6;
d = (d & 0xff) + 0x2022;
printf("a=0x%hx\tb=0x%x\td=0x%hx\te=0x%x\n", a, b, d, e);
printf("c=Ox%hhx\t\n", (signed char)c);
}
c
#include <stdio.h>
void func(void) {
short a = -2;
// a = 1111 1111 1111 1110
unsigned int b = 1;
b += a;
// b = 1111 1111 1111 1111 1111 1111 1111 1111
int c = -1;
// c = 1111 1111 1111 1111 1111 1111 1111 1111
unsigned short d = c * 256;
// d = 1111 1111 0000 0000
c <<= 4;
// c = 1111 1111 1111 1111 1111 1111 1111 0000
int e = 2;
// e = 0000 0000 0000 0000 0000 0000 0000 0010
e = ~e | 6;
// e = 1111 1111 1111 1111 1111 1111 1111 1101 |
// 0000 0000 0000 0000 0000 0000 0000 0110
// = 1111 1111 1111 1111 1111 1111 1111 1111
d = (d & 0xff) + 0x2022;
// d = 1111 1111 0000 0000 & 0000 0000 1111 1111 + 0x2022 = 0x2022
printf("a=0x%hx\tb=0x%x\td=0x%hx\te=0x%x\n", a, b, d, e);
// a = 0xfffe, b = 0xffffffff, d = 0x2022, e = 0xffffffff
printf("c=Ox%hhx\t\n", (signed char)c);
// (signed char)c = 1111 0000 = 0xf0
}
int a = 1;
int const b = 2;
const int c = 3;
void funco(int n) {
n += 1;
n = a;
}
void func1(int *n) {
*n += 1;
n = &a;
}
void func2(const int *n) {
*n += 1;
n = &a;
}
void func3(int *const n) {
*n += 1;
n = &a;
}
void func4(const int *const n) {
*n += 1;
n = &a;
}
c
int a = 1;
int const b = 2;
const int c = 3;
void func0(int n) {
// a formal parameter n
n += 1;
n = a;
}
void func1(int *n) {
// a pointer n
*n += 1;
n = &a;
}
void func2(const int *n) {
// a const int pointer to n
// *n is a const, unchangeable
*n += 1;
n = &a;
}
void func3(int *const n) {
// an int pointer to const n
*n += 1;
// n is a const, unchangeable
n = &a;
}
void func4(const int *const n) {
// a const int pointer to const n
// *n is a const, unchangeable
*n += 1;
// n is a const, unchangeable
n = &a;
}
#define Swap1(a, b, t) \
do { \
t = a; \
a = b; \
b = t; \
} while (0)
#define Swap2(a, b) \
do { \
int t = a; \
a = b; \
b = t; \
} while (0)
void Swap3(int a, int b) {
int t = a;
a = b;
b = t;
}
int main(void) {
int data[] = {0x636c6557, 0x20656d6f, 0x78206f74,
0x756f7969, 0x6e694c20, 0x67207875,
0x70756f72, 0x32303220, 0x00000a31};
puts((const char*)data);
}
c
#include <stdio.h>
int main(void) {
// c l e W e m o x o t
int data[] = {0x636c6557, 0x20656d6f, 0x78206f74,
// u o y i n i L g x u
0x756f7969, 0x6e694c20, 0x67207875,
// p u o r 2 0 2 \0 1
0x70756f72, 0x32303220, 0x00000a31};
// unsigned char data[34] = {
// 0x57, 0x65, 0x6C, 0x63, 0x6F, 0x6D, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x78,
// 0x69, 0x79, 0x6F, 0x75, 0x20, 0x4C, 0x69, 0x6E, 0x75, 0x78, 0x20, 0x67,
// 0x72, 0x6F, 0x75, 0x70, 0x20, 0x32, 0x30, 0x32, 0x31, 0x00};
// }
puts((const char *)data);
}
评论区
评论加载中...