C语言
shusheng_2017
这个作者很懒,什么都没留下…
展开
-
线程池
┌────────────────────────────────────────────────────────────────────┐ │ • MobaXterm 20.0 • │ │ (SSH client, X-server and networking tools) │ │ ...原创 2021-03-15 01:34:49 · 132 阅读 · 0 评论 -
void (*signal(int, void (*)(int)))(int);
函数指针类型:void(*)(int)signal函数声明(仅仅是声明不需要传参):<返回值> signal(int, void(*)(int));为什么下面的形式声明不行呢:void()(int) signal(int, void()(int));函数指针变量func_pointer声明;void(*func_pointer)(int);函数的返回值就相当于函数的值(本体),即使用signal(int, void(*)(int))替换func_pointer:void(sig原创 2020-11-02 12:36:15 · 569 阅读 · 2 评论 -
宏替换的理解
1、带参数宏定义时只能说独立参数,不能加运算符。2、可以说宏替换优先级是最高的,防止替换后表达式有变化。#include <stdio.h>#define mal(x, y) (x * y) //带参数宏,参数替换表达式int main(){ int i = 3,j = 3; int a; char **b[5][6]; //指针数组 a = mal(i++, sizeof(b) + 5); //sizeof(b)==sizeof(char *)*5*6 printf(原创 2020-08-11 09:25:36 · 2592 阅读 · 0 评论 -
二进制数有多少个1
代码是整理得到的#include <stdio.h>const __uint64_t m1 = 0x5555555555555555; //binary: 0101...const __uint64_t m2 = 0x3333333333333333; //binary: 00110011..const __uint64_t m4 = 0x0f0f0f0f0f0f0f0f; //binary: 4 zeros, 4 ones ...const __uint64_t m8原创 2020-07-08 11:40:23 · 771 阅读 · 0 评论 -
指针数组、数组指针和二维数组以及常量指针和指针常量
多维数组本身是指针数组,多维数组首先是数组,数组的内容是子数组的指针数组数组指针就是指向数组的指针~所以在使用多维数组时候使用例如:int (*a)[3]就是指向一个指向二维数组的指针。指针数组就是数组的内容为指针例如:char *a[2],那么a[0]和a[1]都是指向char类型的指针。当我们录入2个字符串的时候,我们就可以使用指针数组。#include <stdio.h>void main(){ int num[3][3] = {0 ,1, 2, 3, 4, 5,原创 2020-07-07 15:50:07 · 337 阅读 · 0 评论