我不是专业的C程序员,我知道包括.c来自另一个的源文件被认为是不好的做法,但我认为它有助于可维护性.
我有一个包含大量元素的大结构,我#define用来保存索引.
#define TOTO_IND 0
#define TITI_IND 1
…
#define TATA_IND 50
static const MyElements elems [] = {
{"TOTO", 18, "French"},
{"TITI", 27, "English"},
...,
{"TATA", 45, "Spanish"}
}
Run Code Online (Sandbox Code Playgroud)
因为我需要从索引访问结构,所以我需要保持#define和结构声明同步.这意味着我必须在正确的位置插入新元素并相应地更新#define.
它容易出错,我不喜欢它(但出于性能考虑,我找不到更好的解决方案).
无论如何,这个文件还包含很多处理这个结构的函数.我还希望保持代码分离并避免全局变量.
为了使事情变得"更容易",我正在考虑将这个"容易出错的定义"转移到.c仅包含此结构的单个源文件中.这个文件将是"危险的小心文件",并将其包含在我的实际"正常功能"文件中.
你怎么看待这件事?包含.c源文件是否有效?还有另一种更好的方法来处理我的结构吗?
我正在学习使用maven密码加密功能,我想知道如何选择参数<password>.有两件事我不明白:
mvn --encrypt-master-password foobar总会给出不同的encrypted master password.由于encrypted master password总是不同,我只看到两种可能性:
encrypted master password来获取master password.这意味着我们encrypted server passwords只能在本地使用.master password没用,根本没有关系.所以,我的问题是:
什么存储在本地?我的
master password保持安全吗?有没有第三种可能性我没想到?
另请注意,加密密码可由具有主密码和设置安全文件的人解密.如果您希望可能检索settings.xml文件,请保持此文件的安全(或单独存储).
如果settings security file是要保护的东西,为什么我要打扰选择一个强大的主密码?我不能只使用foobar并保持settings security file安全吗?
此外,看起来有两个文件(settings security file和settings file)的人不需要master password连接到maven服务器.他可以在不知道密码的情况下使用我们的身份 在master password"只"需要解密servers passwords(让他们纯文本).但话说回来,保护settings security file应该是应该走的路,而且master password仍然无用.
我的问题:
这有多重要
master password …
password-protection password-encryption maven password-generator
多个通用接口分隔符:","或"&"
我一直在使用,A<T extends I1, I2>但今天,我看到了A<T extends I1 & I2>.这两种表示法有什么区别?
它有不同的含义吗?目的?
为了探索一些解决方案,我需要产生所有可能性.我是通过使用位屏蔽来实现的,如下所示:
for (long i = 0; i < 1L << NB; i++) {
System.out.println(Long.toBinaryString(i));
if(checkSolution(i)) {
this.add(i); // add i to solutions
}
}
this.getBest(); // get the solution with lowest number of 1
Run Code Online (Sandbox Code Playgroud)
这让我去探索(如果NB = 3):
000
001
010
011
100
101
110
111
Run Code Online (Sandbox Code Playgroud)
我的问题是最好的解决方案是数量最少的那个1.所以,为了在我找到解决方案后立即停止搜索,我希望有一个不同的顺序并生成这样的东西:
000
001
010
100
011
101
110
111
Run Code Online (Sandbox Code Playgroud)
这将使搜索速度更快,因为我可以在获得第一个解决方案后立即停止搜索.但我不知道如何更改循环以获得此输出...
PS:NB未定义......
在java中,这个赋值有什么问题:
Map<String, Object> mObj = new HashMap<String, String[]>();
Run Code Online (Sandbox Code Playgroud)
我明白了:
error: incompatible types: HashMap<String,String[]> cannot be converted to Map<String,Object>
Run Code Online (Sandbox Code Playgroud)
从String[]是Object,这应该工作.如果我投射到这样的非参数Map:Map<String, Object> mObj = (Map) new HashMap<String, String[]>();它是有效的,但当然,我得到一个警告,它是脏的.
此外,我觉得我的第一个任务应该有效.
谢谢 !
PS:我不能简单地改变new HashMap<String, String[]>();,new HashMap<String, Object>();因为在现实中,我调用一个返回a的方法,Map<String, String[]>();当然,我不能改变这个方法.再次感谢你.
java dictionary compiler-errors parameterized incompatibletypeerror
java ×3
algorithm ×1
c ×1
dictionary ×1
embedded ×1
generics ×1
inheritance ×1
loops ×1
maven ×1
performance ×1
separator ×1
stm32 ×1