小编sep*_*p2k的帖子

在csc.exe中定位特定的frawework版本

如何通过命令行调用为csc.exe c#编译器指定目标框架版本(例如,没有.csproj文件而不通过MSBUILD引擎)?

例如,使用C#3.0 csc.exe编译器,如何编译为针对2.0 .net框架的IL?

c#

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

"namespace std {}"在"using namespace std;"之前

我在很多地方看到了下面的语法,其中使用了STL类而没有明确限定它们std::.初始的优点是namespace std {}什么?为什么不放using namespace std;

namespace std {}
using namespace std;
Run Code Online (Sandbox Code Playgroud)

c++ namespaces

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

如何在Python 3中找到.pyc标头的幻数

Python字节码(.pyc)文件有一个标题,以在Python版本之间更改的幻数开头.我如何(以编程方式)找出当前Python版本的数字以生成有效的标头?我目前正在为Python 3.7.1编写硬编码,但这意味着我现在依赖于特定的Python版本.

这个答案完全符合我的要求py_compile.MAGIC,但在Python 3中似乎不再存在.如何在Python 3中完成相同的操作?

这是我正在尝试做的一个例子:

import dis
import marshal

PYC_HEADER = b'\x42\x0d\x0d\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

def f():
    print('Hello World')

with open('test.pyc', 'wb') as pyc:
    pyc.write(PYC_HEADER)
    marshal.dump(dis.Bytecode(f).codeobj, pyc)
Run Code Online (Sandbox Code Playgroud)

这应该创建一个文件test.pyc,然后可以使用与脚本相同的Python解释器运行,并且应该打印"Hello World!".它确实如此,但只有在使用Python 3.7时才会这样.我正在寻找一种方法来生成用于运行脚本的Python 3版本的标头,而不是硬编码3.7.

对于上下文:

我正在编写一个简单的编程语言到不同的字节码格式(LLVM,Java字节码,Web汇编和现在的Python字节码),作为计划编译的计划教程系列的一部分.

我可以使用byteasm库生成Python字节码,这给了我一个函数作为结果.但是为了将内容写入.pyc文件,我需要一个有效的头.通过对头文件进行硬编码,只有遵循本教程的人员运行与我相同版本的Python 3(3.7)或者他们必须手动找到其版本的幻数时,代码才会起作用.

python pyc python-3.x

13
推荐指数
2
解决办法
2254
查看次数

我可以导入静态类作为命名空间来调用其方法而无需在C#中指定类名吗?

我广泛使用了一个特定静态类的成员函数.每当我调用它时,指定类名的方法看起来很讨厌......

我可以导入静态类作为命名空间来调用其方法而不指定类名C#吗?

.net c# static-methods namespaces

12
推荐指数
3
解决办法
3597
查看次数

如何在带终端的gcc中启用c99模式

我想在gcc编译器中激活c99模式,我在这个论坛中的其他帖子中读取-std应该等于-std=c99但我不知道如何使用命令行将其设置为此值,所以请帮助.

c gcc c99

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

编译器是否可以自行确定变量是否为const?

我知道这个函数很简单,它将被内联:

int foo(int a, int b){
    return a + b;
}
Run Code Online (Sandbox Code Playgroud)

但我的问题是,编译器无法自动检测到这与以下内容相同:

int foo(const int a, const int b){
    return a + b;
}
Run Code Online (Sandbox Code Playgroud)

既然可以检测到这一点,为什么我需要在const任何地方输入?我知道inline由于编译器的进步,关键字已经过时了.是不是该const做同样的时间?

c++ const qualifiers

12
推荐指数
4
解决办法
1107
查看次数

C++函数匹配优先级

我有关于c ++函数匹配优先级的简单问题.假设我有这样的代码:

#include <iostream>

void func(const char*)
{
    std::cout << "const char*" << std::endl;
}

template<int N>
void func(const char (&) [N])
{
    std::cout << "const char (&) [N]" << std::endl;
}

int main(int argc, char* argv[])
{
    func("Hello world");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

代码的结果是(with Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)):

const char*
Run Code Online (Sandbox Code Playgroud)

我认为"Hello world"应该是文字类型const char[].为什么const char*版本的优先级高于const char (&)[]版本?

c++ function

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

面临一些未知问题一些后端 jvm 内部错误

我面临一些未知问题,看起来像是一些内部编译器错误:这些是构建 apk 时的错误:

Error:org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't transform method node: doResume (Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;:
Error:org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException: Error at instruction #375 L0: Incompatible stack heights
Error:org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException: Incompatible stack heights
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

java android jvm kotlin

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

为什么我需要一个C++编译器来编译Rust?

这可能是一个非常愚蠢的问题,但我想知道为什么Rust编译器(用Rust编写)本身需要一个C++编译器.

我的意思是,从分发中预编译的Rust编译器应该就够了,不应该吗?

rust

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

如何在Haskell中的函数中重新分配变量?

我不知道如何在函数中重新赋值变量.

例如,

elephant = 0

function x = elephant = x
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

haskell

11
推荐指数
4
解决办法
9341
查看次数

标签 统计

c++ ×3

c# ×2

namespaces ×2

.net ×1

android ×1

c ×1

c99 ×1

const ×1

function ×1

gcc ×1

haskell ×1

java ×1

jvm ×1

kotlin ×1

pyc ×1

python ×1

python-3.x ×1

qualifiers ×1

rust ×1

static-methods ×1