小编Neo*_*low的帖子

从另一个字符串的值创建字符串变量名称

在我的bash脚本我有两个变量CONFIG_OPTION,并CONFIG_VALUE包含字符串VENDOR_NAMEDefault_Vendor分别.

我需要创建一个名为$CONFIG_OPTIONie 的变量,VENDOR_NAME并将值赋给CONFIG_VALUE新创建的变量.

我怎么能这样做?

我试过了

$CONFIG_OPTION=$CONFIG_VALUE
Run Code Online (Sandbox Code Playgroud)

但我在这一行上收到错误

'./Build.bash: line 137: VENDOR_NAME="Default_Vendor": command not found'
Run Code Online (Sandbox Code Playgroud)

谢谢.

unix bash

20
推荐指数
2
解决办法
2万
查看次数

使用uint8,uint16等

目前我正在使用针对32位MIPS平台的代码库(C,C++混合).处理器是一个相当现代的处理器[只是提到我们有很好的处理能力和内存].

代码库使用数据类型,如uint8 [1字节宽无符号整数],uint16 [2字节宽无符号整数],uint32 [4字节宽无符号整数]等.

我知道在将代码移植到不同平台时这些构造的用法是如何有用的.

我的问题是:

  1. 使用uint16有什么用/有用uint32也足够了(如果有的话)?

  2. 在使用较短的数据类型(考虑数据对齐)时,是否可以节省内存使用量?

  3. 如果要节省几个字节的内存,在现代硬件中做些什么是明智的吗?

c c++ embedded memory-management

19
推荐指数
2
解决办法
5万
查看次数

使用上限和下限搜索地图

STL新手问题:

关于函数std::map::upper_bound,std::map::lower_bound指定一个实际上不存在于地图中的键是否有效?

std::map<int,int> intmap;
std::map<int,int>::iterator it1, it2;

intmap[1] = 10;
intmap[2] = 20;
intmap[4] = 40;
intmap[5] = 50;

it1 = intmap.lower_bound (3);  // Is this valid?
it2 = intmap.upper_bound (3);  // Is this valid?
Run Code Online (Sandbox Code Playgroud)

c++

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

印地语语言在tcpdf上无法正确显示

我创建了下面的代码,用于在tcpdf中使用arial unicode字体显示hindi文本

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);


//set some language-dependent strings
$pdf->setLanguageArray($l);

// ---------------------------------------------------------

$pdf->addTTFfont('fonts/ARIALUNI.TTF', 'TrueTypeUnicode', '', 32);
$pdf->SetFont('arialuni', '', 10,'false');

$txt = 'hindi text with arial unicode ???????';

$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);

// ---------------------------------------------------------

//Close and output PDF document
$pdf->Output('example_038.pdf', 'I');
Run Code Online (Sandbox Code Playgroud)

但它没有正确显示

但在PHP中它显示正确的文本.

请告诉我是否有任何错误.

php utf-8 tcpdf hindi

14
推荐指数
1
解决办法
4186
查看次数

最烦人的解析

我在Cpp Quiz 上看到了一个代码[问题 #38]

#include <iostream>

struct Foo
{
  Foo(int d) : x(d) {}
  int x;
};

int main() 
{ 
  double x = 3.14;

  Foo f( int(x) );

  std::cout << f.x << std::endl;

  return 0;
} 
Run Code Online (Sandbox Code Playgroud)

据说这段代码格式不正确,因为Foo f( int(x) );将被视为函数声明而不是 type 的对象声明Foo

据我所知,这是“最烦人的解析”的一个实例。我的问题是int(x)语句中的这种语法是什么Foo f( int(x) );意思?到目前为止,我只看到了如下函数声明:

  1. Foo f( int );

  2. Foo f( int x );

是一样的Foo f( int x );吗?

c++ most-vexing-parse

8
推荐指数
2
解决办法
1947
查看次数

在CPP文件中使用make文件字符串变量

我在make文件中使用以下代码从CPP文件访问变量VENDOR_NAME.

EXTRA_DEFINE += -DVENDOR_NAME=$(VENDOR_NAME) VENDOR_NAME 包含一个字符串.

在我的cpp文件中,当我尝试使用此变量时,我收到的错误如下所示.

cout << VENDOR_NAME;

Feature1.cpp.bak.cpp:8:'default_Vendor'未声明(首先使用此功能) Feature1.cpp.bak.cpp:8:(每个未声明的标识符仅报告一次

我想这是因为我的字符串不包含双引号,编译器正在考虑将VENDOR_NAME的内容作为变量.

如何将此变量作为我的CPP文件中的字符串获取,以便我可以像使用它一样使用#define它?

谢谢...

c++ makefile

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

使代码更清洁

对不起,如果这个问题不适合SO.

我有一个C++函数,大致看起来像下面给出的MyFun().

从这个函数我调用一些(比如大约30个)其他返回布尔变量的函数(true表示成功,false表示失败).如果这些函数中的任何一个返回false,我也必须从MyFun()返回false.此外,如果中间函数调用失败,我不应该立即退出(不调用其余函数).

目前我正如下面给出的那样做,但感觉可能有更简洁/简洁的方法来处理这个问题.任何建议表示赞赏.

非常感谢.

bool MyFun() // fn that returns false on failure
{
    bool Result = true;

    if (false == AnotherFn1()) // Another fn that returns false on failure
    {
        Result = false;
    }

    if (false == AnotherFn2()) // Another fn that returns false on failure
    {
        Result = false;
    }

     // Repeat this a number of times.
    .
    .
    .


    if (false == Result)
    {
         cout << "Some function call failed";
    }

    return Result;
}
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
3
解决办法
459
查看次数

访问结构成员而不使用点运算符

我甚至都不知道,我所问的是不是愚蠢与否.我不是要求你为我编写任何代码,而是要以更好的方式做一些事情.

我有一个包含大量项目的结构,如下所示:

typedef struct _myStruct
{
    int int1;
    char char1;
    int int2;
    :
    :
    int int50;
}myStruct;
Run Code Online (Sandbox Code Playgroud)

我有另一个枚举,myStruct中的每个项目都有一个条目.

enum
{
   eINT1,
   eCHAR1,
   eINT2,
   :
   :
   eINT50
} PARAMETER_ID;
Run Code Online (Sandbox Code Playgroud)

我想为每种数据类型编写一个函数[比如说一个用于int,一个用于char,一个用于字符串等] myStruct,当PARAMETER_ID给出输入时,它返回一个成员的值.

例如,我需要一个int GetInt(PARAMETER_ID)函数,它返回int1eINT1作为参数传递时的值.同样我也会有char GetCharacter(PARAMETER_ID),float GetFloat(PARAMETER_ID)等等.

结构中的项目数可能很大.因此,为每个项目使用开关盒将不是一个可行的选择.

只有我能想到的其他选项是使用结构变量和offsetof()函数的地址来计算参数的地址,然后memcpy将所需的字节输入变量.在那种情况下,我需要在每个地方保留每个参数的偏移量,但这不是问题.

我正在寻找替代选项来做到这一点.任何帮助将不胜感激.

谢谢.

c

3
推荐指数
1
解决办法
1149
查看次数

解决循环依赖 - C

我检查了SO的重复,但无法找到我的问题的确切解决方案.

我有一个头文件NvCommon.h,我使用枚举NV_DATA_TYPE.这个枚举在另一个标题NvDefs.h中定义,我在其中使用了许多结构和枚举NvCommon.h.由于循环依赖,我无法构建它.我知道转发声明枚举是不可能的.

在这种情况下可以做些什么?这是我设计的问题吗?我是否必须引入另一个头文件来解决这个问题?

我不是C专家.请帮我.我的设计可能有问题,我知道可以通过引入另一个头文件来修复此循环依赖.我想知道的是"这是唯一的方法".寻找备用解决方案(如果有).

如果它有用,我会发布完整的代码.

c

3
推荐指数
2
解决办法
7287
查看次数

使用strcat将字符串附加到字符数组(如char p [] ="TEST")是否有效

#include<iostream>
#include<string.h>
using namespace std;
int main()
{

    char p [] = "TEST";
    strcat (p, "VAL");
    cout << p;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我理解的是正确的,那么像char p [] ="TEST"这样的陈述; 将从堆栈中分配空间.当我为这样的字符串调用strcat()时如何调整p []的存储以容纳额外的字符?

最后的cout打印"TESTVAL".这样调用strcat是否有效?如果是,这是如何工作的?我的理解可能有问题,但感觉我失去了联系.所以这很容易成为一个愚蠢的问题.请说清楚.

c++ string

3
推荐指数
1
解决办法
83
查看次数

标签 统计

c++ ×6

c ×3

bash ×1

embedded ×1

hindi ×1

makefile ×1

memory-management ×1

most-vexing-parse ×1

php ×1

string ×1

tcpdf ×1

unix ×1

utf-8 ×1