编译前确定数组长度[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我尝试在Arduino和C ++中设置一个简单的访问控制机制。访问的单个密码在编译时已知,看起​​来像这样

const unsigned int PASSWORD[] = {1, 2, 3, 4, 5};

为了将用户输入与PASSWORD进行比较,我需要几个与PASSWORD具有相同元素数量的其他数组(并非所有数组都具有相同的数据类型)。

目前,我能想到实现这一目标的唯一方法是拥有第二个常量变量

const unsigned int PASSWORD_LENGTH = 5;

但是,让用户输入密码并在设置中使用相同密码的长度对我来说似乎是不必要的冗余。

因此,我的问题是,如果有一种方法可以告知编译器有关PASSWORD的长度并将此长度用作代码中的变量,而无需用户自己计算元素吗?

c++ arrays compilation arduino preprocessor
1个回答
0
投票

你可以使用std::size()

这将有所帮助:https://en.cppreference.com/w/cpp/iterator/size

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