在PHP中,有什么区别:
我知道如何使用它们,但我无法清楚地区分它们.
我想在main功能之前做一些事情.我有多个源文件.在每个文件中,有一些工作需要在之前完成main.这在C++中没有问题,但在C语言中存在问题.
在C++中,这可以通过两种方式完成:
例如, static const int __register_dummy_ = __AddRegisterMetaInfo(...);
但是,在C中,无论哪种方式都是不可能的.显然,没有构造函数.所以,第一种选择本质上是不可能的.
我认为第二个选项是可能的,但不是用C编译的(我只用Visual C++测试过.它给出了C2099.).C只允许常量为非自动变量.
有没有办法在main之前调用一些函数?
编辑:似乎很多人误解了我真正想做的事情.很抱歉以简单的方式撰写此问题.
我需要做的是实现一种C++运行时类信息功能,就像MFC的方法一样.在这种方法中,我需要从所有源代码中获取一些信息.例如,假设每个源文件都有一个类的定义,我想查看所有信息(例如,类名和父类).最简单的方法是在每个文件中放置一个静态构造函数,每个构造函数访问一个全局数据结构并注册其信息.但是,我也想找到一种方法在C中实现类似的东西.所以,简单地调用pre_main_jobin main不能成为我的答案.
请注意,这种滥用静态构造函数的方法也可以在LLVM编译器套件中找到.每个优化/分析功能都作为通过实现.所有这些传递都是通过静态构造函数注册的.
订单之间有什么区别:
public static final String = "something";
Run Code Online (Sandbox Code Playgroud)
要么
public final static String = "something";
Run Code Online (Sandbox Code Playgroud)
?
是否可以测试PHP中的变量是否是静态的?我正在尝试创建一个__get也看静态变量的魔术方法.我发现property_exists()当变量也是静态时返回true.但我需要使用::而不是->我期望的?
我在课堂上有以下方法:
public boolean validTransAmt()
{
FacesContext facesContext = FacesContext.getCurrentInstance();
Pattern p = Pattern.compile("^([0-9]{0,})(([\\.]?)([0-9]{1,2})([\\.]?))$");
String transAmt = getDetails().getAmount();
Matcher matcher = p.matcher(transAmt);
if (!matcher.matches())
{
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
每次调用该方法时,是否会重新编译此模式?或者它是否被缓存?
我应该在班上将它声明为静态变量吗?
谢谢
我有一个静态变量的类如下:
class Commons {
public static String DOMAIN ="www.mydomain.com";
public static String PRIVATE_AREA = DOMAIN + "/area.php";
}
Run Code Online (Sandbox Code Playgroud)
如果我在运行时尝试从Android Activity(或其他java类)更改DOMAIN,DOMAIN变量会更改,但PRIVATE_AREA不会更改.为什么?
可能重复:
静态变量
如何从C中的另一个文件访问静态变量?由于静态变量具有文件范围,我认为我们无法在文件外访问它.但我仍然觉得可能有一些技巧或方法来做同样的事情.
我正在编写一个XNA引擎,我将所有模型存储在一个List.为了能够在整个引擎中使用它,我已经做了这个,public static List<Model>所以我可以从我开发的任何新类访问它.它当然使获得模型列表真的很容易获得,但这是正确的用法吗?或者我会更好地在方法声明中传递变量?
覆盖派生类中的静态字段会导致
错误TS2417:构建:类静态端'typeof TDerived'错误地扩展了基类静态端'typeof TBase'.
这是一个合法的错误案例吗?
class TBase
{
private static s_field = 'something';
public constructor() {}
}
class TDerived extends TBase
{
private static s_field = 'something else'; // commenting this line fixes error
public constructor()
{
super();
}
}
Run Code Online (Sandbox Code Playgroud)
那我该怎么处理静态字段呢?现在唯一的解决方法是将类名添加到每个静态字段名称,这是一个非常难看的解决方案.
private static TBase_s_field = 'something';
...
private static TDerived_s_field = 'something else';
Run Code Online (Sandbox Code Playgroud)
ps使用typescript 2.0.3
我在伴生对象中声明了一个字段,因此它将在伴生对象中的函数中知道。
像这样:
class ProgramStructure {
companion object {
var index = 0
fun inc(){
index++
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我调试它时,我看不到“索引”的值。我怎样才能看到价值?
谢谢
static-variables ×10
java ×3
c ×2
inheritance ×2
php ×2
android ×1
c# ×1
constants ×1
debugging ×1
final ×1
kotlin ×1
regex ×1
typescript ×1
xna ×1