小编som*_*one的帖子

内核有主要功能吗?

我正在学习Device DriverKernel编程.根据Jonathan Corbet的书,我们main()在设备驱动程序中没有功能.

#include <linux/init.h>
#include <linux/module.h>

static int my_init(void)
{
     return  0;
}

static void my_exit(void)
{
     return;
}

module_init(my_init);
module_exit(my_exit);
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 为什么我们不需要main()设备驱动程序中的功能?
  2. 内核有main()功能吗?

c linux linux-device-driver linux-kernel

14
推荐指数
2
解决办法
4281
查看次数

在Windows操作系统上以递归方式搜索一个字符串

我想在Windows OS的项目中递归搜索一个字符串,例如"main".我搜索了一下,找到了一个Windows递归grep命令行的解决方案

我用两种不同的方法应用了相同的结果,结果并不像预期的那样.

比如我的做法

findstr /S "main" *.cpp
Run Code Online (Sandbox Code Playgroud)

但是当我选择的时候

findstr /S "int main" *.cpp
Run Code Online (Sandbox Code Playgroud)

我没有得到我的主要功能.这两种方法有什么区别?提供空间字符串是错误的吗?

findstr windows-7

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

设置或重置给定位而不分支

在一次采访中,他们问我,你如何设置或重置一下?这是一个非常简单的问题,我回答了这个问题.

之后他们问我,那样做without branching.我不知道什么是分支.我搜索那个,我来到这里 http://graphics.stanford.edu/~seander/bithacks.html

但仍然没有得到分支和非分支的概念.请解释一下Branching.

c bit-manipulation

7
推荐指数
2
解决办法
3906
查看次数

函数属性returns_twice

我只是查找gcc的funciton属性(http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.html)并遇到了该returns_twice属性.

而且我绝对无能为力,在什么情况下函数可以返回两次...我快速查阅了所提到的内容vfork(),setjmp()但仍然不知道一个适用的场景是什么样的 - 你们中的任何人使用它还是可以解释一下?

c c++ function function-attributes

7
推荐指数
2
解决办法
1201
查看次数

为什么我们需要在C++中使用`class`,当`struct`可以用来实现同样的?

使用a struct我们可以实现class:构造函数(可以修改/重载),析构函数(可以修改/重载),运算符重载,实例方法,静态方法,public/ private/ protected字段/方法的所有功能.

那为什么我们需要class呢?

注意:我不希望答案说明struct,字段/方法是public默认的.

c++ struct class

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

在ac程序中拆卸部分

我写了一个非常基本的Hello World程序来了解各个部分.使用后objdump我得到了所有部分.我在用ubuntu 12.04.

在输出中我发现它是这样的:

  1. 拆卸部分.init

  2. 拆卸部分.plt

  3. 部分.text的反汇编

  4. __do_global_dtors_aux

  5. 部分.fini的反汇编

我想知道那些部分是什么?他们存储了哪些数据?特别.plt.fini.关于.init,.text我可以猜,但其他人怎么样?

c objdump disassembly

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

在c语言中声明时按索引分配数组

void fun ()
{
    int i;
    int a[]=
    {
    [0]=3,
    [1]=5
    };
}
Run Code Online (Sandbox Code Playgroud)

c语言是否支持上述[]数组赋值方式.如果是哪个c版本.
我使用gcc编译上面的代码它工作正常.

但我以前从未见过这种作业.

c arrays variable-assignment

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

理解C++中的继承

我正在尝试学习C++,并编写了这段代码.根据我的理解,这段代码需要产生输出,"Derived Class"但输出是"Base Class".请帮我理解这个.

#include <iostream> 
using namespace std; 

class Base { 
    public: 
    char* name; 
    void display() { 
         cout << name << endl; 
    } 
Run Code Online (Sandbox Code Playgroud)

};

class Derived: public Base { 
   public: 
   char* name; 
   void display() { 
       cout << name << ", " << Base::name << endl; 
   } 
}; 

int main() { 
   Derived d; 
   d.name = "Derived Class"; 
   d.Base::name = "Base Class"; 

   Derived* dptr = &d; 

   Base* bptr = dptr; 

   bptr->display();
}
Run Code Online (Sandbox Code Playgroud)

请考虑我作为初学者,并解释为什么它的输出 "Base Class"

c++ inheritance

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

计算浮点数中"."后面的位数?

这是一个面试问题.如何计算.浮点数后的数字位数.

例如,如果给出3.554输出= 3

对于43.000输出= 0.我的代码片段就在这里

double no =3.44;
int count =0;
while(no!=((int)no))
{
    count++;
    no=no*10;
}
printf("%d",count);
Run Code Online (Sandbox Code Playgroud)

有些数字无法用float类型表示.例如,没有73.487float型,由指示的数目float中c是73.486999999999995近似的.

现在如何解决它,因为它正在进行一些无限循环.

注意:在IEEE 754规范中,32位浮点数被分为24 + 7 + 1位.7位表示尾数.

c floating-point

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

无法解析这段代码......是C++ 11吗?

我遇到了一个项目,在那里我发现了一些我无法理解的代码.我刚开始C++,所以对我来说这似乎是个大问题.我提供的项目很少,我无法理解.

class abc
{
     public:
       //some stuff
       abc();
};

abc::abc()
{
    int someflag = 0;
    //code
    if(someflag == 0)
    {
         do
         {
             //few strcpy operations
             {                 //(My Question)Without any condition braces started
                   //variable initialization
             }
         }while(condition);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题......

  1. 我们通过这种操作可以实现什么?
  2. do-while循环的内部括号中发生了什么?
  3. do-while循环内初始化变量(我提到过)的范围是什么 ?
  4. 是C++ 11吗?

帮我理解这个.

c++ c++11

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