作者:杨扬洒傻 | 来源:互联网 | 2023-09-25 13:22
Spark+ES+ClickHouse构建DMP用户画像-行业竞争越来越激烈,精细化经营成为各企业取胜的秘籍。用户画像系统作为提供精准用户数据的重要来源,已经成为企业必备的核心平台
行业竞争越来越激烈,精细化经营成为各企业取胜的秘籍。用户画像系统作为提供精准用户数据的重要来源,已经成为企业必备的核心平台,人才缺口大,薪资高。本课程将基于大数据主流技术,数据挖掘核心算法,带你打造企业实用的用户画像平台,提升你的个人竞争力。
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);