全局内存是用C++初始化的吗?如果是这样,怎么样?
(二)澄清:
当程序启动时,在初始化基元之前,内存空间中的内容将成为全局内存?我试图了解它是否被清零,或者例如垃圾.
情况是:可以instance()在初始化之前通过调用设置单例引用:
MySingleton* MySingleton::_instance = NULL;
Run Code Online (Sandbox Code Playgroud)
并获得两个单例实例?
在单个多个实例上查看我的C++测验...
我正在尝试创建一个依赖于WFDB库的动态库(https://www.physionet.org/physiotools/wfdb.shtml).我的c ++代码如下:
#include <stdio.h>
#include <iostream>
#include <vector>
#include <vector>
extern "C" {
#include <wfdb/wfdb.h>
}
#include "./sample_wfdb.h"
int add(int a, int b){
return a + b;
}
int read(){
int i, nsig;
WFDB_Siginfo* siarray;
WFDB_Sample* v;
nsig = isigopen("/data/100s", NULL, 0);
if (nsig < 1)
exit(1);
siarray = (WFDB_Siginfo*)malloc(nsig * sizeof(WFDB_Siginfo));
nsig = isigopen("data/100s", siarray, nsig);
for (i = 0; i < nsig; i++)
v = (WFDB_Sample*)malloc(nsig * sizeof(WFDB_Sample));
if (v == NULL) {
fprintf(stderr,"%s: insufficient memory\n"); …Run Code Online (Sandbox Code Playgroud) 我在这里看到这个有趣的问题,询问没有的程序的可能性main().在那里,我看到eon给出了如下一个答案,这在C/C++中很有效.
#include<stdio.h>
#define decode(s,t,u,m,p,e,d) m##s##u##t
#define begin decode(a,n,i,m,a,t,e)
int begin()
{
printf(" hello ");
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释上面的代码如何工作?是不是真的在main()这里或只是隐藏在我们的眼睛里?