行业竞争越来越强烈,精细化经营成为各企业取胜的秘籍。用户画像零碎作为提供精准用户数据的重要起源,曾经成为企业必备的外围平台,人才缺口大,薪资高。本课程将基于大数据支流技术,数据挖掘外围算法,带你打造企业实用的用户画像平台,晋升你的集体竞争力。
2 关键字
问题 1:static 关键字的作用?
答:
Static 的用处次要有两个,一是用于润饰存储类型使之成为动态存储类型,二是用于润饰链接属性使之成为外部链接属性。
1 动态存储类型:
在函数内定义的动态局部变量,该变量存在内存的动态区,所以即便该函数运行完结,动态变量的值不会被销毁,函数下次运行时能仍用到这个值。
在函数外定义的动态变量——动态全局变量,该变量的作用域只能在定义该变量的文件中,不能被其余文件通过 extern 援用。
2 外部链接属性
动态函数只能在申明它的源文件中应用。
问题 2:const 关键字的作用?
答:
1 申明常变量,使得指定的变量不能被批改。
const int a = 5;/ a 的值始终为 5,不能被扭转/
const int b; b = 10;/ b 的值被赋值为 10 后,不能被扭转/
const int ptr; /ptr 为指向整型常量的指针,ptr 的值能够批改,但不能批改其所指向的值 */
int const ptr;/ptr 为指向整型的常量指针,ptr 的值不能批改,但能够批改其所指向的值 */
const int const ptr;/ptr 为指向整型常量的常量指针,ptr 及其指向的值都不能批改 */
2 润饰函数形参,使得形参在函数内不能被批改,示意输出参数。
如 int fun(const int a); 或 int fun(const char *str);
3 润饰函数返回值,使得函数的返回值不能被批改。
const char getstr(void); 应用:const str= getstr();
const int getint(void); 应用:const int a =getint();
问题 3:volatile 关键字的作用?
答:
volatile 指定的关键字可能被零碎、硬件、过程 / 线程扭转,强制编译器每次从内存中获得该变量的值,而不是从被优化后的寄存器中读取。例子: 硬件时钟; 多线程中被多个工作共享的变量等。
问题 4:extern 关键字的作用?
答:
1 用于润饰变量或函数,表明该变量或函数都是在别的文件中定义的,提醒编译器在其余文件中寻找定义。
extern int a;
extern int *p;
extern int array[];
extern void fun(void);
其中,在函数的申明带有关键字 extern,仅仅是暗示这个函数可能在别的源文件中定义,没有其余作用。如:
头文件 A:A_MODULE.h 中蕴含
extern int func(int a, int b);
源文件 A: A_MODULE.c 中
include“A_MODULE.h”
int func(int a, int b)
{
returna+b;
}
此时,开展头文件 A_MODULE.h 后,为
extern int func(int a, int b);/尽管暗示可能在别的源文件中定义,但又在本文件中定义,所以 extern 并没有起到什么作用,但也不会产生谬误/
int func(int a, int b)
{
returna+b;
}
而源文件 B:B_MODULE.c 中,
include“A_MODULE.h”
int ret = func(10,5);/
开展头文件 A_MODULE.h 后,为
extern int func(int a, int b);/暗示在别的源文件中定义,所以在上面应用 func(5,10)时,在链接的时候到别的指标文件中寻找定义/
int ret = func(10,5);