Linux内核,const casting函数

Linux内核,const casting函数,c,linux,search,constants,C,Linux,Search,Constants,我是一名计算机科学专业的学生,目前正在学习C。 几周前,l学习了常量变量和常量指针。讲师提到,他在linux内核中发现了一个函数,该函数将常量变量转换为可变变量。问题是他不记得是在哪里弄的 A.该功能在哪里?它的作用是什么 B.程序员为什么要做这样的事情?不确定您是否对内核函数感兴趣,或者它是如何实现的 “de-const”用于删除变量的const属性。在C语言中,它是这样重新铸造的 const int i = 8; // i=9; // (compiler error) *(

我是一名计算机科学专业的学生,目前正在学习C。 几周前,l学习了常量变量和常量指针。讲师提到,他在linux内核中发现了一个函数,该函数将常量变量转换为可变变量。问题是他不记得是在哪里弄的

A.该功能在哪里?它的作用是什么


B.程序员为什么要做这样的事情?

不确定您是否对内核函数感兴趣,或者它是如何实现的 “de-const”用于删除变量的const属性。在C语言中,它是这样重新铸造的

const int i = 8;

// i=9;        // (compiler error)

*(int*)&i = 9; // (ok)

在C语言中,程序员之所以这样做,要么是因为他们无法用想要的值初始化变量,要么是因为他们需要将其作为一个寻址参数传递,要么是因为他们无论如何都需要更改它。

A.我确信GitHub上有Linux内核的镜像。我也确信不止一个地方会发生这种情况。可能是因为这是必要的。有趣的是,如果你的讲师在3.10内核中发现了这个函数,那么它可能会在4.1中被完全重写:所以,请更具体一点。我正在进行中间测试,以找到实现该功能的内核函数及其功能。这是内核版本:i686上的内核2.6.18-404.e15,这是我的讲师使用的版本。