小编bre*_*ett的帖子

如何组织我的c代码

我有大的主文件包含大约7,000行C代码.如果我想使这个代码模块化并将代码与此文件分开.将函数分离出文件的主要标准和应保留在文件中的函数是什么.

c

9
推荐指数
2
解决办法
3178
查看次数

级别顺序遍历二叉树

void traverse(Node* root)
{
    queue<Node*> q;

    Node* temp_node= root;

    while(temp_node)
    {
        cout<<temp_node->value<<endl;

        if(temp_node->left)
            q.push(temp_node->left);

        if(temp_node->right)
            q.push(temp_node->right);

        if(!q.empty())
        {
            temp_node = q.front();
            q.pop();
        }
        else
            temp_node = NULL;
   }
 }
Run Code Online (Sandbox Code Playgroud)

上面发布的代码是我的级别订单遍历代码.这段代码对我来说很好,但我不喜欢的一件事是我明确初始化temp_node = NULL或者使用break.但它对我来说似乎不是一个好的代码.

是否有比这更好的实现或如何使这个代码更好?

c++ algorithm binary-tree breadth-first-search tree-traversal

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

在ith positon稍微切换一下

可能重复:
如何在C中设置,清除和切换单个位?

有人可以帮助我如何在第i个位置切换一下.一种方法是做((n>>i) ^ 1) << i.还有其他方法吗?

c bit-manipulation

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

为什么人们会使用像char*和buf这样的东西?

我正在阅读有关Stack Overflow的帖子,我看到了这个功能:

    advance_buf( const char*& buf, const char* removed_chars, int size );
Run Code Online (Sandbox Code Playgroud)

char*& buf这里有什么意思,为什么人们会使用它?

c++

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

内存释放和异常

我有一个关于内存释放和异常的问题.当我使用delete删除在堆上创建的对象时.如果在此删除之前发生异常,则内存将泄漏或此删除将执行?

c++ exception

6
推荐指数
2
解决办法
2376
查看次数

线程相关的问题和调试它们

这是我关于内存管理问题的上一篇文章的后续内容.以下是我所知道的问题.

1)数据竞争(原子性违规和数据损坏)

2)订购问题

3)滥用锁定导致死锁

4)heisenbugs

多线程的任何其他问题?怎么解决?

c c++ multithreading operating-system

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

mem中的C实现

有人可以帮助我理解如何在C中实现memmove.我只有一个特殊条件吗?

if((src<dst)&&((src+sz) > dst))

copy from the back
Run Code Online (Sandbox Code Playgroud)

它还取决于堆栈增长的方式吗?

c memmove

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

堆栈增长方向

所以从我之前的memmove问题我想知道如何找到堆栈增长的方向.

  void stackDirection(int* i)
  {

     int j;

     if(&j>i)
         cout<<"Stack is growing up \n"<<endl;
     else 
         cout<<"Stack is growing down \n"<<endl;


   }
  int main()
  {    
      int i=1;

      stackDirtection(&i);

 }
Run Code Online (Sandbox Code Playgroud)

c++

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

替代地图

由于地图不允许重复值.是否有任何其他容器属于C++标准库的一部分,允许重复按键值对存储值?

c++

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

什么是GCC内联汇编语言中的r()和double %%%?

例:

int main(void)
{
    int x = 10, y;

    asm ("movl %1, %%eax;"
        "movl %%eax, %0;"
        :"=r"(y)    /* y is output operand */
        :"r"(x)     /* x is input operand */
        :"%eax");   /* %eax is clobbered register */
}
Run Code Online (Sandbox Code Playgroud)
  • 是什么r(y)
  • 也为什么%%以前用过eax?一般单%用吗?

c assembly gcc inline-assembly

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