未来两年CBDC最有可能领跑的五大国家
|
正常情况下,CPU Usage 高,CPU Load 也会比较高。CPU Usage 低,CPU Load也会比较低。也有例外情况: CPU Load 低,CPU Usage 高:如果 CPU 执行的任务数很少,则 CPU Load 会低,但是这些任务都是CPU密集型,那么利用率就会高。 CPU Load 高,CPU Usage 低:如果CPU执行的任务数很多,则 CPU Load 会高,但是在任务执行过程中 CPU 经常空闲(比如等待IO),那么利用率就会低。
2. 内存 然后用这样的方式pFunc p1, p2;来定义多个函数指针就方便多了。注意:只能把与函数指针类型具有相同签名的函数赋值给p1和p2,也就是参数的个数、类型要相同,返回值也要相同。 注意:这里有几个小细节稍微了解一下: 在赋值函数指针时,使用p = &a;也是可以的; 使用函数指针调用时,使用(*p)(a, b);也是可以的。 这里没有什么特殊的原理需要讲解,最终都是编译器帮我们处理了这里的细节,直接记住即可。
函数指针整明白之后,再和数组结合在一起:函数指针数组。示例代码如下: 前文已经说过,函数的名字就代表函数的地址,所以函数名add就代表了这个加法函数在内存中的地址。int (*p)(int, int);这条语句就是用来定义一个函数指针,它指向一个函数,这个函数必须符合下面这2点(学名叫:函数签名):
代码中的add函数正好满足这个要求,因此,可以把add赋值给函数指针p,此时p就指向了内存中这个函数存储的地址,后面就可以用函数指针p来调用这个函数了。
在示例代码中,函数指针p是直接定义的,那如果想定义2个函数指针,难道需要像下面这样定义吗? 我们拿第一个printf语句来分析:p0是一个指针,指向一个数组,数组中包含3个元素,每个元素在内存中占据4个字节。现在我们想获取这个数组中的数据,如果直接对p0执行加1操作,那么p0将会跨过12个字节(就等于p1中的值了),因此需要使用解引用操作符*,把p0转为指向int型的指针,然后再执行加1操作,就可以得到数组中的int型数据了。 5. 结构体指针
C语言中的基本数据类型是预定义的,结构体是用户定义的,在指针的使用上可以进行类比,唯一有区别的就是在结构体指针中,需要使用->箭头操作符来获取结构体中的成员变量,例如: (编辑:唐山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
