/* Terminate calling thread. The registered cleanup handlers are called via exception handling so we cannot mark this function with __THROW.*/ //结束线程 externvoidpthread_exit(void *__retval) __attribute__((__noreturn__));
/* Make calling thread wait for termination of the thread TH. The exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN is not NULL. This function is a cancellation point and therefore not marked with __THROW. */ //线程等待 externintpthread_join(pthread_t __th, void **__thread_return);
fp = fopen("/tmp/test.txt", "r"); /* /tmp/test.txt This is testing for fprintf... This is testing for fputs... */ fscanf(fp, "%s", buff); //fscanf() 方法只读取This,因为它在后边遇到了一个空格 printf("1: %s\n", buff );
C语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。 C标准库是一组 C 内置函数、常量和头文件,比如 stdio.h、stdlib.h、math.h 等等。这个标准库可以作为 C 程序员的参考手册。 C语言标准库有各种不同的实现,比如glibc, 用于嵌入式Linux的uClibc,还有ARM公司的C语言标准库及精简版的MicroLib等。不同标准库的实现并不相同,而且提供的函数也不完全相同,不过有一个它们都支持的最小子集,这也就是最典型的C语言标准库。 典型的C语言标准库(GNU C 标准库)官网:The GNU C Library
return; } intmain() { /* 局部变量定义 */ int a = 100; int b = 200; printf("交换前,a 的值: %d\n", a ); printf("交换前,b 的值: %d\n", b ); swap(a, b); printf("交换后,a 的值: %d\n", a ); printf("交换后,b 的值: %d\n", b ); return0; }
voidswap(int *x, int *y) { int temp; temp = *x; /* 保存地址 x 的值 */ *x = *y; /* 把 y 赋值给 x */ *y = temp; /* 把 temp 赋值给 y */ return; }
intmain() { /* 局部变量定义 */ int a = 100; int b = 200; printf("交换前,a 的值: %d\n", a ); printf("交换前,b 的值: %d\n", b ); /* 调用函数来交换值 * &a 表示指向 a 的指针,即变量 a 的地址 * &b 表示指向 b 的指针,即变量 b 的地址 */ swap(&a, &b); printf("交换后,a 的值: %d\n", a ); printf("交换后,b 的值: %d\n", b ); return0; }
=:简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C +=:加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A -=:减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A *=:乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A /=:除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A %=:求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A <<=:左移且赋值运算符 C <<= 2 等同于 C = C << 2 >>=:右移且赋值运算符 C >>= 2 等同于 C = C >> 2 &=:按位与且赋值运算符 C &= 2 等同于 C = C & 2 ^=:按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2 |=:按位或且赋值运算符 C |= 2 等同于 C = C | 2