小编jxh*_*jxh的帖子

是否允许在模板中使用本地定义的类型?

回答不同的问题时,我找不到为什么不允许使用以下代码的原因.

template <typename F> void bar (F *f) { f->a = 0; }

int main () {
    struct Foo { int a; } f = { 3 };
    bar(&f);                         // fail
}
Run Code Online (Sandbox Code Playgroud)

我提供的解释是编译器无法合法地表达模板扩展,但这更多是我的直觉而不是理由.关于为什么代码不应该编译,是否有明确的解释?

c++

0
推荐指数
1
解决办法
108
查看次数

调试宏与调试变量

下面是使用调试变量的示例

class A{
 public:
  A(bool debug):m_debug(debug){};
  ~A(){};

  void Test(){
    for(int i=0;i<1000000;i++){
      // do something

      if(m_debug) print();
    }
  }

  void print(){
    std::cout << "something" << std::endl;
  }


 private:
  bool m_debug;
};
Run Code Online (Sandbox Code Playgroud)

下面是使用调试宏预处理器的示例

#include "Preprocessor.h"

class A{
 public:
  void Test(){
    for(int i=0;i<1000000;i++){
      // do something

#ifdef DEBUG
        print();
#endif
    }
  }

  void print(){
    std::cout << "something" << std::endl;
  }
};
Run Code Online (Sandbox Code Playgroud)

在Preprocessor.h中简单

#define DEBUG
Run Code Online (Sandbox Code Playgroud)

使用调试变量的好处是类对全局预处理器头的依赖性较小.关于宏方法的好处是,如果在运行时执行语句,则减少1000000,这对于每个fps计数时的图形应用程序来说可能是至关重要的.什么被认为是更好的方法?

c++ debugging macros

0
推荐指数
1
解决办法
438
查看次数

程序不起作用

我仍然被认为是c的初学者,我开始学习文件.我已经建立了一个空白文件.每次编译此程序时,该文件仍为空白.需要帮忙!!

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

     int main()
    {
       FILE * x;
       char name[25];

       printf("enter your name: ");
       scanf("%s", &name);

       x = fopen("x1.txt", "w");

       if(x = NULL)
      {
         printf("Unable to open the file");
      }

       else
      {
         fprintf(x, "%s\n", name);

         printf("date has been entered successfully to the file");
         fclose(x);
      }


 return 0;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c file

0
推荐指数
1
解决办法
66
查看次数

无法理解&(sizeof 2 [a])[a]

我有一些输出的代码,bcdefg我不明白为什么。

我用谷歌搜索,但找不到任何东西。

const char a[]="Abcdefg";
printf("%s",&(sizeof 2[a])[a]);
Run Code Online (Sandbox Code Playgroud)

为什么是输出bcdefg,而不是Abcdefg

c arrays string

-1
推荐指数
2
解决办法
94
查看次数

标签 统计

c ×2

c++ ×2

arrays ×1

debugging ×1

file ×1

macros ×1

string ×1