编译前确定数组长度

时间:2019-03-02 09:45:11

标签: c++ arrays compilation arduino preprocessor

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

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

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

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

const unsigned int PASSWORD_LENGTH = 5;

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用std::size()

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