小编Dha*_*tri的帖子

C预处理器:stringize宏和身份宏

我想知道这段代码输出背后的原因.我无法想出答案.

#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
void main()
{
   printf("%s %s",h(f(1,2)),g(f(1,2)));
}
Run Code Online (Sandbox Code Playgroud)

PS:输出是12 f(1,2).我以为是12 12f(1,2) f(1,2).

c macros stringification c-preprocessor

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

管理程序和java虚拟机

我想问的问题是:

1)hypervisor到底做了什么?为什么需要?

2)hypervisor和Java Virtual mMchine有什么区别?

3)JVM是否使用管理程序?

4)当像linux这样的主机操作系统可以处理多个客户操作系统时,为什么要使用hypervisor?

如果有人对此有所了解,那将会很有帮助

virtualization operating-system jvm

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

linux中的scull设备驱动程序

我正在阅读rubini,corbet和hartmen的linux设备驱动程序书.我不了解scull设备驱动程序的这些内容.这就是本书所说的

在打开设备进行写入时,在设备上执行的唯一实际操作是将其截断为0.这是因为,通过设计,用较短的文件覆盖scull设备导致较短的设备数据区域.

如果有人解释如何完成修剪会有很大的帮助吗?用较短的文件覆盖scull设备是什么意思?

linux linux-device-driver linux-kernel

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

c中va_arg函数中的变量参数类型

我正在通过gcc编译器收到警告,如果执行以下代码,程序将中止我无法理解为什么?如果有人澄清它会很有帮助.

#include<stdio.h>
#include<stdarg.h>
int f(char c,...);
int main()
{
   char c=97,d=98;
   f(c,d);
   return 0;
}

int f(char c,...)
{
   va_list li;
   va_start(li,c);
   char d=va_arg(li,char); 
   printf("%c\n",d);
   va_end(li);
}
Run Code Online (Sandbox Code Playgroud)

海湾合作委员会告诉我:

warning: 'char’ is promoted to ‘int’ when passed through ‘...’ [enabled by default]
note: (so you should pass ‘int’ not ‘char’ to ‘va_arg’)
note: if this code is reached, the program will abort
Run Code Online (Sandbox Code Playgroud)

c

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

g中的goto和自动变量初始化程序

在一个教程中它说

如果使用goto语句跳转到块的中间,则不会初始化该块中的自动变量.

然后在下面的代码中,如果我可以访问/声明,那么为什么它没有初始化?

int main()
{
   goto here;
   {
     int i=10;
     here:
      printf("%d\n",i);
   }
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

ps:输出是一些垃圾值.

c

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

React-bootstrap 抛出错误“您可能需要适当的加载器来处理此文件类型”

我正在尝试使用https://react-bootstrap.github.io/上的包

它只是说你必须 npm 安装该软件包,然后对浏览器全局变量有一些非常模糊的说明:

We provide react-bootstrap.js and react-bootstrap.min.js bundles with all components exported on the window.ReactBootstrap object. These bundles are available on unpkg, as well as in the npm package.

<script src="https://unpkg.com/react/umd/react.production.min.js" crossorigin></script>

<script
  src="https://unpkg.com/react-dom/umd/react-dom.production.min.js"
  crossorigin></script>

<script
  src="https://unpkg.com/react-bootstrap@next/dist/react-bootstrap.min.js"
  crossorigin></script>

<script>var Alert = ReactBootstrap.Alert;</script>
Run Code Online (Sandbox Code Playgroud)

以及他们提供的 CDN。

How and which Bootstrap styles you include is up to you, but the simplest way is to include the latest styles from the CDN. A little more information about the benefits of using …
Run Code Online (Sandbox Code Playgroud)

reactjs twitter-bootstrap-3 react-bootstrap

6
推荐指数
0
解决办法
747
查看次数

Pymongo不在mongodb中创建集合

这是创建collection的简单代码.但是没有创建集合.

import pymongo

conn=pymongo.Connection()
db=conn["userdb"]
table=db["Books"]
Run Code Online (Sandbox Code Playgroud)

COuld有人帮我解决这个问题吗?

python mongodb pymongo

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

主要内部的功能声明和C中的外部主要功能

第一个程序编译得正确.第二个程序给出了错误,说foo的参数太少......编译器在两个程序中都忽略了全局声明?

第一个程序:

#include<stdio.h>
    void foo();
int main()
{
  void foo(int);
  foo(1);
  return 0;
}

void foo(int i)
{
   printf("2 ");
}

void f()
{
   foo(1);
}
Run Code Online (Sandbox Code Playgroud)

第二个程序:

void foo();
int main()
{
  void foo(int);
  foo();
  return 0;
}

void foo()
{
   printf("2 ");
}

void f()
{
   foo();
}
Run Code Online (Sandbox Code Playgroud)

c

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

c中使用fork时的缓冲机制

可能的重复:
Linux gcc 中 fork() 的工作
为什么此代码打印两次?

我想知道以下代码输出背后的原因:

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main()
{
   FILE *fp;
   int n;
   printf("%d",45);
   //fflush(stdout);
   if((n=fork())>0){
      printf("in parent\n");  
      exit(0);
   }
   else if(n==0)
       printf("%d",45);
}
Run Code Online (Sandbox Code Playgroud)

输出

45inparent
4545
Run Code Online (Sandbox Code Playgroud)

如果我使用 fflush,那么输出

45inparent
45
Run Code Online (Sandbox Code Playgroud)

另外,我是在linux平台上运行的

c file-io

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

c中下标中的字符串

下面的代码是什么意思?我以为这是编译错误.但是没有发生编译错误.

int main() 
{ 
    const int a=1; 
    printf("%c", ++a["Gyantonic"]); 
}
Run Code Online (Sandbox Code Playgroud)

Linux a中的输出是分段错误.如果a[1]给出代替,则给出编译错误++a["Gyantonic"].

它是如何工作的?

c

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