乐趣区

关于javascript:SparkESClickHouse-构建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);

退出移动版