小编Sha*_*han的帖子

等效紧凑的"开关案例"声明

我有一个包含数千或更多独特案例的switch case语句.用户很难通过案例编号记住每个案例.所以,我为每个case使用一个唯一的字符串并对其进行散列以获得给定字符串的选择'sel':

   % Example c code
   sel =hashfunction(string)
   switch (sel) {
     case 0:
          func0(); 

     case 1:
          func1();
     ......
     ......
    case 10000:
         func10000();
   }
Run Code Online (Sandbox Code Playgroud)

但是,此代码变得非常大,因为它必须在单个文件中,并且还违反了100行的编码准则.因为有一个唯一的情况映射到函数调用,我假设我可以使用指针在一个for循环中的函数来调用它们.这将比开关盒紧凑.非常感谢任何帮助实现这一目标.

c pointers function-pointers function switch-statement

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

否定serialVersionUID?

我遇到了一个异常处理程序类,它扩展了异常,如下所示:

public class AppFileReaderException extends Exception {
    //Explicit serialization UID added 
    private static final long serialVersionUID = -2458461415998318236L;

    public AppFileReaderException(String msg) 
    {
        super(msg);
    }
Run Code Online (Sandbox Code Playgroud)

作者使用了显式序列化版本UID,并在其他类似的异常处理程序类中忽略了它.基于我从另一篇SO帖子中理解的内容,如果应用程序没有使用任何序列化和反序列化,我们可以忽略序列化UID.奇怪的是,作者使用了否定的UID.我很想知道这是有效还是推荐的做法.有没有其他理由使用负序列版本的VID?

java serialization serialversionuid

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

如何使用LLVM为不同的目标架构编译程序?

我想使用LLVM/Clang将基本程序hello.c编译为本机x86架构,以生成中间件和程序集.我使用了以下命令:

clang -O3 -emit-llvm hello.c -c -o hello.bc
llc hello.bc -o hello.s
Run Code Online (Sandbox Code Playgroud)

它完美地运作.如何生成其他架构的代码说SPARC 32位?clang中是否有用于指定架构的标志?

c c++ compiler-construction llvm clang

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

为什么当由常量函数返回时,volatile类型是否可以是常量?

一个c ++类有一个成员函数,代码如下:

const volatile stats_t& get_stats() const{
        return stats;
    }
Run Code Online (Sandbox Code Playgroud)

将const和volatile一起使用的原因是什么?这个功能到底是什么功能?如果返回类型是const,它是否与使用volatile的目的相矛盾?

c++ const function volatile

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

将百万次写入文件,破坏我的硬盘?

我有一个IO密集型仿真程序,它在每次迭代时将仿真跟踪/数据记录到一个文件中.由于模拟运行超过数百万次迭代并将数据记录到磁盘中的文件(每次覆盖文件),我很想知道这是否会破坏硬盘,因为大多数存储磁盘都有上限写入/擦除周期(例如,闪存盘允许多达100,000次写入/擦除周期).将文件拆分为多个文件会是更好的选择吗?

c io storage file disk

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

32 位 SPARC V8 应用程序能否在 64 位 SPARC V9 上运行?

我很少有符合 SPARC V8 32 位架构的基准测试应用程序。我将它们用于 SPARC 32 位处理器的性能评估。然而,很少有应用程序在性能上达不到要求。我想用 64 位 SPARC V9 架构(如 OpenSPARC T1/T2)测试性能。我的问题是 32 位 SPARC V8 体系结构的编译二进制文件是否可以在 SPARC V9 体系结构中运行而无需任何修改?两种架构中的二进制文件是否兼容?

performance cpu-architecture sparc 32bit-64bit

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

Java接口扩展了一个抽象类?

我发布的代码片段在接口扩展和抽象类时不会出现任何语法错误.接口audio扩展music了方法中的抽象类sort()

import java.util.List;
abstract class music {}
public interface audio {}

abstract class play implements Comparable <play> {

    public <audio extends music> void sort (List <music> list){
        //do something 
    }

}
Run Code Online (Sandbox Code Playgroud)

我假设一个接口不能扩展抽象类.任何人都可以解释为什么会这样吗?

java inheritance abstract-class interface

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

在字符串中添加换行符(Matlab)

如何在Matlab中为字符串添加新的行字符以获取等效的Java代码?

String line;
line += "\n";
Run Code Online (Sandbox Code Playgroud)

string matlab newline char

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

main函数的多个文件参数

我想处理多个文本文件(例如,比较2个文件)并将文件作为参数传递给main函数.我怎么做 ?如何从命令行传递多个文件参数?

import java.io.File;
class MultiFileApp {
    public static void main(String[] args) {
        // Read file 1
        // Read file 2
        //Process File 1 & 2
    }
}
Run Code Online (Sandbox Code Playgroud)

java file-io program-entry-point file args

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

全局指针和本地指针有什么区别?

我有一个像这样的小代码:

 #include <stdio.h>

    int *ptr1;
    int *ptr2;


  void some_function(void)
    {

    int B = 5;
    ptr2 = &B;
    }

  main (){
    int C, D;
    int A =10;
    int *ptr3;
    ptr1= &A;

    ptr3=ptr2;

    some_function();

    C = *ptr1 + *ptr2;

    printf("Sum of the numbers C= %d\n",C);

    some_function();
    D = *ptr1 + *ptr3;

    printf("Sum of the numbers D= %d\n",D);

  }
Run Code Online (Sandbox Code Playgroud)

为什么我不得到D的结果但得到C的结果?我得到了print语句S的结果,um of the numbers C=15但是对于D的最后一个print语句没有任何结果.本地和全局指针之间有什么区别(我的意思是ptr1和ptr2都是全局定义的,而ptr3是定义本地的)?指针赋值是否ptr3=ptr2有效?指向局部变量Vs的指针是否有任何显着差异?指向全局变量的指针?

c c++ pointers global-variables

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

final static int和static final int之间的区别?

有什么区别final static int x = 1;static final int x=1?换句话说,java编译器x在两种情况下都会以完全相同的方式表示吗?

编辑:编译器在静态和最终方面有任何优先级或优先级吗?

java static final

0
推荐指数
2
解决办法
553
查看次数

私有构造函数由公共方法初始化

我遇到了私有构造函数的类,但是通过调用私有构造函数,该对象由另一个公共方法返回.当我们可以将构造函数公开时,这样的构造可能有什么优势?

public final class TokenTable {

    static public int errorToken = 0; 
    static public int timesToken = 1;
    static public int divToken = 2;
    static public int plusToken = 11;
    ......
    ......

    private final HashMap<String, Integer> keywordMap = new HashMap();
    private final HashMap<String, Integer> operationMap = new HashMap();

    private TokenTable() {

        operationMap.put("*", timesToken);
        operationMap.put("/", divToken);
        operationMap.put("+", plusToken);
        ....



    }


    static public TokenTable getInstance() {

            LexTokenTabInstance = new TokenTable();
            return LexTokenTabInstance;
    }

}
Run Code Online (Sandbox Code Playgroud)

java constructor public-method

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

如何在两个无限循环之间交替?

我想在两个无限循环之间交替; 我该怎么做到这一点.我的代码是这样的:

#include <stdio.h>

int main() {
    // Master loop
    while (1)

    // loop # 1
    while (1) {
        printf("I am in loop #1");
    }

    // loop # 2
    while (1) {
        printf("I am in loop #2");
    }
} // end of master loop
Run Code Online (Sandbox Code Playgroud)

如何在循环#1和循环#2之间切换?我只是测试一个想法来检查/比较两个循环时间(时间)之间的一些结果,以便在时间线中找到一些偏差/错误.

c c++ infinite-loop while-loop

-4
推荐指数
1
解决办法
1376
查看次数