gpt4 book ai didi

c++ - 编译时数据段太大

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:49 24 4
gpt4 key购买 nike

在这里,我将一个位数组传递给其他某个函数。由于数组太大,编译时会抛出“数据段太大”错误。

我新编辑了代码。但是,错误:data segment too large 仍然存在

这是代码:

char TxBits[]={0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,     
0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,
0,0,0,1,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,0,1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0};

int nTxBits = sizeof(TxBits)/sizeof(char);

void data(char *TxBits,int nTxBits, int loopcount)
{

int i;

for (i = 0;i < nTxBits;i++)
{

gpio=TxBits[i];
wait(loopcount);
}

}

因此,我正在考虑将数组中的位转换为字节并传递给函数。我可以知道如何进行吗?接受建议。请回复

最佳答案

根据您的代码,我认为您正在使用一些微 Controller ,所以我不确定您是否认真对待 C++ 标记。如果你是,这是一个 C++ 风格的解决方案,它使用 std::bitset(用于处理需要更少空间的位的专用容器):

std::bitset<134> foo (std::string("01010101010101010101010100101010101010101010101010010101010101010101010101001010101010101010101010100101010101010101010101010100000000"));

void data(const std::bitset& bitset, int loopcount) {
// if C++11
for (auto& bit : foo) {
gpio = bit;
wait(loopcount);
}

// if C++98
// for (int i = 0; i<bitset.size(); i++) {
// gpio = foo[i];
// wait(loopcount);
// }
}

关于c++ - 编译时数据段太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com