小编Çağ*_*KME的帖子

函数体中的 static constexpr 与 constexpr?

在函数体内使用static constexpr和时有什么区别吗?constexpr

int SomeClass::get(const bool b) 
{
    static constexpr int SOME_CONSTANT = 3;
    constexpr int SOME_OTHER_CONSTANT = 5;

    if(b)
        return SOME_CONSTANT;
    else
        return SOME_OTHER_CONSTANT;
}
Run Code Online (Sandbox Code Playgroud)

c++ static constexpr

6
推荐指数
1
解决办法
1539
查看次数

是否有必要为没有动态资源的类实现移动构造函数?

我有一个如下所示的容器类。如您所见,该类使用的所有资源都是静态分配的。类中没有动态分配的资源。这样的类是否需要移动构造函数或移动赋值运算符?

template<class T, std::size_t SIZE>
class Stack{
    static_assert(SIZE != 0, "Stack capacity cannot be zero!");

public:
    /*** Constructors and Destructor ***/
    Stack() = default;             // Default constructor
    Stack(const Stack& copyStack); // Copy constructor
    ~Stack();                      // Destructor

    /*** Member Methods ***/
    /* .... */
    void swap(Stack& swapStack);

private:
    /*** Members ***/
    std::size_t idxTop{0};   // Index after the top element
    T data[SIZE];            // Contained data
};
Run Code Online (Sandbox Code Playgroud)

对于那些想通过实际实现进行尝试的人:

c++ stack containers move

5
推荐指数
1
解决办法
135
查看次数

如何在C中找到初始化程序的大小?

我正在尝试定义一个列表,其中包括我们设备的MAC地址。我想用一个宏来做。这是我定义的列表的示例:

#define WHITELIST_DEVICE {                                  \
                      {0x45,0x11,0xDF,0xED,0x2B,0x61},  \
                      {0xAB,0x11,0xDF,0x61,0x6B,0x2B},  \
                      {0x61,0x6B,0x3B,0xED,0x61,0x61},  \
                      {0xDF,0x55,0xDF,0x6B,0x6B,0x61},  \
                     } /**< List of device mac addresses in whitelist*/
Run Code Online (Sandbox Code Playgroud)

定义列表后,我想像列和行一样收集其大小。最简单的方法是什么?您也可以建议我一种定义列表的新方法。该代码将在嵌入式系统上工作。所以,它不应该有繁重的算法:)

c

2
推荐指数
1
解决办法
98
查看次数

如何将 uint8_t 数组与 C 中的字符串进行比较?

我有一个来自 UART 的输入。

uint8_t uartRX_data[UART_RX_BUF_SIZE]="";
Run Code Online (Sandbox Code Playgroud)

我需要将此数据传递给函数。并且,在这个函数中,我想将它与预定义的字符串进行比较,例如:

char RESP_OK[]                  = "OK";
char RESP_ERROR[]               = "ERROR";
char RESP_FAIL[]                = "FAIL";
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

编辑:我的问题只是关于数据比较和数据传递给函数。

c string uint8t

2
推荐指数
1
解决办法
5421
查看次数

如何将uint8_t数组与C中的十六进制值进行比较?

我的代码中有预定义的十六进制值。以下是其中之一。

#define ADDRESS1 0xD445556BD557
#define ADDRESS2 0xED612BDF113B
Run Code Online (Sandbox Code Playgroud)

我也有一个uint8_t数组。喜欢

uint8_t MAC[6];
Run Code Online (Sandbox Code Playgroud)

如何在不编写新函数的情况下比较这两件事?

我已经尝试过

if(MAC == ADDRESS2)
Run Code Online (Sandbox Code Playgroud)

c uint8t

0
推荐指数
1
解决办法
100
查看次数

C++20 中 constexpr 虚函数的优点是什么?

我可以很容易地说,通过将函数声明为constexpr,我们可以在编译时对其进行评估,这可以节省运行时的时间,因为结果已经生成了。

另一方面,虚函数需要在运行时解析。因此,我想我们无法摆脱解决过程。由于函数的机​​制,只能快速获取结果constexpr

函数还有其他好处吗constexpr virtual

c++ virtual-functions constexpr c++20 constexpr-function

0
推荐指数
1
解决办法
691
查看次数