constants 相关问题

编程中的常量是定义,其值在整个程序的执行过程中是固定的。例如,大多数语言中的文字都是常量。在引用透明的编程样式中,所有定义都是常量。

C# 对象的返回内部组件

目标 我想在 C# 中实现的一个经常出现的设计如下:一个类,它拥有另一个类的多个实例。 为了清楚起见,让我们举一个例子,假设一辆“汽车”

回答 1 投票 0

为什么全局 const 对象在每个翻译单元中都有唯一的副本,如何防止这种情况发生?

当我声明并初始化一个const对象时。 // 常量类.h 类常量类 { }; const ConstClass g_Const; 并且有两个cpp文件包含这个头文件。 // 单元1.cpp #include“ConstClass.h” #包括...

回答 2 投票 0

C 中的 const 和销毁责任

假设我有第一个结构类型a_t和第二个结构类型b_t,并且b_t的一个字段是指向a_t实例的指针。我有创建和销毁功能: 无效 b_t_create(a_t*

回答 2 投票 0

Python 中的常量分组

这主要是一个“良好的Python风格”的问题。 我有一个模块,它使用了许多感觉应该分组的常量。 假设我们有狗和猫,每只都有一些...

回答 6 投票 0

将类型“type”的引用绑定到类型“const type”的值会删除“const”限定符

这个问题看起来像是已知问题。但我的类型没有任何限制。 我缺少什么? 我有以下代码: PlanForBlock 类 { 民众: void registerExtraIterator(DummyLoadIterator *ExtraIte...

回答 1 投票 0

初始化const变量

我们可以像下面这样初始化一个const变量吗 int var1 = 10; 常量 int var2 = var1; 这会在任何编译器中导致任何警告/错误吗?

回答 2 投票 0

为什么C中const变量不需要初始化?

C++ 中的 const 变量必须初始化意味着未初始化的 const 变量是不可能的,这是一个编译器错误。但为什么在C语言中也不一样呢? 考虑遵循以下计划

回答 4 投票 0

覆盖 python 包中的常量

我正在将这个python包用于个人项目:https://openpifpaf.github.io/intro.html 我已经用 pip install openpifpaf 安装了它。 我正在尝试使用 openpifpaf.train 训练一个新模型

回答 1 投票 0

Rust 中恒定全局状态的解决方案

目前我正在开发一个 Rust 程序,该程序应该在微控制器上运行多个音频处理节点。因此,我发现当我在 con 上进行 for 循环时,处理速度要快得多...

回答 1 投票 0

当另一个指向 const 的指针观察到数据时,通过指针更改数据是否安全?

它是安全的代码吗?还是编译器可以通过 p 优化访问,使得 *p 的结果为 42? #包括 整数我 = 42; int *d = &i; 无效测试(int const *p) { *d = 43;

回答 3 投票 0

通过其他指针将指针更改为const

它是安全的代码吗?还是编译器可以通过 p 优化访问,使得 *p 的结果为 42? #包括 整数我 = 42; int *d = &i; 无效测试(int const *p) { *d = 43;

回答 2 投票 0

C lang 通过其他指针将指针更改为 const

它是安全的代码吗?或者编译器可以通过 p 优化访问,使得 *p 的结果为 42? 整数我 = 42; int *d = &i; 无效测试(int const *p) { *d = 43; printf("%d, %p ”,...

回答 1 投票 0

为什么向量<T const*>要转换为向量<const T*>?

代码如下: typedef std::vector TempArrayType; TempArray类型tempArray; 当我使用 tempArray 时,它的类型会隐式转换为 std::vector 并且我 ...

回答 1 投票 0

在 PHP 中动态访问类常量

我希望能够动态查找常量的值,但使用变量不适用于语法。 我希望能够动态查找常量的值,但使用变量不适用于语法。 <?php class Food { const FRUITS = 'apple, banana, orange'; const VEGETABLES = 'spinach, carrot, celery'; } $type = 'FRUITS'; echo Food::FRUITS; echo Food::$type; ?> 给予 apple, banana, orange Fatal error: Access to undeclared static property: Food::$type 如何动态调用常量? 我想到的唯一解决方案是使用 constant 函数: echo constant('Food::' . $type); 在这里,您创建一个常量的名称(包括类)作为字符串,并将该字符串 ('Food::FRUITS') 传递给 constant 函数。 ReflectionClass 可以用来获取所有常量的数组,然后可以从那里找到特定常量的值: <?php class Food { const FRUITS = 'apple, banana, orange'; const VEGETABLES = 'spinach, carrot, celery'; } $type = 'FRUITS'; $refClass = new ReflectionClass('Food'); $constants = $refClass->getConstants(); echo $constants[$type]; ?> 使用命名空间时,请确保包含命名空间,即使它是自动加载的。 namespace YourNamespace; class YourClass { public const HELLO = 'WORLD'; } $yourConstant = 'HELLO'; // Not working // >> PHP Warning: constant(): Couldn't find constant YourClass::HELLO .. constant('YourClass::' . $yourConstant); // Working constant('YourNamespace\YourClass::' . $yourConstant);``` 您可以创建关联数组 class Constants{ const Food = [ "FRUITS " => 'apple, banana, orange', "VEGETABLES" => 'spinach, carrot, celery' ]; } 并像这样访问值 $type = "FRUITS"; echo Constants::Food[$type]; 自 2023 年 11 月起,这将在 php8.3 中原生提供 https://php.watch/versions/8.3/dynamic-class-const-enum-member-syntax-support

回答 5 投票 0

函数指针作为函数参数 - 应该 const 它吗? [重复]

如果我写如下内容: int f(char x, const int (*g) (const char x)) { 返回g(x); } 第一个 const 是否有效地表达了我认为它所说的内容,即基本上程序员 c...

回答 1 投票 0

为什么 constexpr 看起来并不意味着 char* 为 const?

很明显 constexpr 意味着 const,因此很常见: constexpr int foo = 42; // 这里没有const 但是如果你写: constexpr char *const str = "foo"; 然后 GCC 将产生“

回答 3 投票 0

无法将非常量 T* 传递给接受 const T* 引用的函数

我很困惑为什么下面的代码无法编译 int foo(const float* &a) { 返回0; } int main() { 浮动* a; foo(a); 返回0; } 编译器给出错误如下: 错误:

回答 1 投票 0

postgres SQL - 使用 upsert 交换 2 行中的值

我有下表,其中包含组合键列 如果不存在则创建表 MyTable ( ColumnID1 整数 NOT NULL, ColumnID2 整数 NOT NULL, 列名字符变化(1000),

回答 2 投票 0

“无法访问词法声明”链接变量错误[关闭]

我知道这是一个常见的错误,我认为我理解其原因,但我肯定在这里遗漏了一些东西。对于以下两个常量,我在声明“

回答 1 投票 0

C 和 x86 汇编中的自制“fabs”函数

我正在尝试在 GNU C 中创建一个返回 32 位浮点数绝对值的 fabs 函数。我有三种不同的方式,称为 fabs1、fabs2 和 fabs3: #包括 #包括 我正在尝试在 GNU C 中创建一个返回 32 位浮点数绝对值的 fabs 函数。我有三种不同的方式,分别称为 fabs1、fabs2 和 fabs3: #include <math.h> #include <stdio.h> typedef union { float v; struct { int mantissa : 23; int exponent : 8; int negative : 1; } b; } components; float fabs1(float f) { return f >= 0.0 ? f : -f; } float fabs2(float f) { components c; c.v = f; c.b.negative = 0; return c.v; } float fabs3(float f) { double aux = f; unsigned short cw; __asm__ ( "finit;\ fstcw %[cw];\ andw $0xf0ff, %[cw];\ orw $0x0200, %[cw];\ fldcw %[cw];\ fldl %[aux];\ fabs;\ fstpl %[aux];" : [aux] "=mr" (aux) : "m" (aux), [cw] "m" (cw) ); return aux; } void main(void) { printf("fabs(-189.55f) = %f\n", fabs(-189.55f)); printf("fabs1(-189.55f) = %f\n", fabs1(-189.55f)); printf("fabs2(-189.55f) = %f\n", fabs2(-189.55f)); printf("fabs3(-189.55f) = %f\n", fabs3(-189.55f)); } 共有三种不同的函数,一种使用简单的决策,一种使用联合,稍微复杂一些,最后一种使用 x86 汇编。我正在 Cygwin 32 位中编译它: C:/Developer/Cygwin/bin/i686-w64-mingw32-gcc -masm=att -I.. -std=c99 -o main.exe main.c 我在Windows 11中运行它,结果是: fabs(-189.55f) = 189.550000 fabs1(-189.55f) = 189.550003 fabs2(-189.55f) = 189.550003 fabs3(-189.55f) = 189.550003 但他们确实应该是: fabs(-189.55f) = 189.550000 fabs1(-189.55f) = 189.550000 fabs2(-189.55f) = 189.550000 fabs3(-189.55f) = 189.550000 你能发现差异吗?在这三种情况下如何去掉多余的 0.000003? 基本问题是数字 189.550000 无法在 float 中表示到该精度级别 - 最接近的值是 189.5500030517578125,当以小数点后 6 位数字打印时为 189.550003 因此,当您使用 fabs (返回 double)时,您会得到值 189.55000000000001136868377216160297393798828125 (双精度可以获得的最接近的值),但所有函数都返回 189.5500030517578125 的浮点值

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.