c - Linux 内核,const 转换函数

标签 c linux search constants

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

A.这个函数在哪里,它有什么作用?

B.程序员为什么要这么做?

最佳答案

不确定您是否对核函数或它的原理感兴趣 变量的“de-const”(删除 const 属性)。在 C 语言中,它被重铸为这样;

const int i = 8;

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

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

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

关于c - Linux 内核,const 转换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266528/

相关文章:

sorting - 如何按匹配排序优先选择最左边的单词

linux - 通过给定输入获取输出 -Linux

java - Lucene 并行搜索

具有指针的结构的 const 正确性

c - 标准输入缓冲区如何工作?

Java 1.6 -> 1.7 JNLP = SIGSEGV

linux - 如何在使用 sed 的模式之后删除文件末尾之前的所有内容?

mysql - 对数据列进行排序以检索最大文本值

C/C++ 预处理器 - 'Charify'

c - 链接共享对象库而不包含它