小编Cat*_*lus的帖子

任何人都可以解释我这段代码

#ifndef EIGHT_BIT
#define THIRTYTWO_BIT // default 32 bit
#endif

#ifdef THIRTYTWO_BIT
#define WORD unsigned long
#define WORDLENGTH 4

#if defined(WIN32) && !defined(__GNUC__)
#define WORD64  unsigned __int64
#else
#define WORD64  unsigned long long
#endif

// THIRTYTWO_BIT
#endif


#ifdef EIGHT_BIT

#define WORD unsigned short
#define WORDLENGTH 4

// EIGHT_BIT
#endif
Run Code Online (Sandbox Code Playgroud)

c++

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

函数,字符串作为C中的返回类型

我需要一个函数来返回一个字符串.我使用以下代码来声明函数:

const char* serv_con(char app_data[50])
{
    char send_data[1024],recv_data[1024];
    //i am avoiding code segments irrelevant to the issue.
    return recv_data;
}
Run Code Online (Sandbox Code Playgroud)

然后像这样调用main中的函数:

int main()
{
    char ser_data[50], app_data[50];
    ser_data[0] = '\0';
    app_data[0] = '\0';
    //avoiding code segments irrelevant to the issue.
    app_data = serv_con(ser_data); //function call
}
Run Code Online (Sandbox Code Playgroud)

编译时会出错:

connect.c:109: error: incompatible types when assigning to type ‘char[50]’ from type ‘const char *’
Run Code Online (Sandbox Code Playgroud)

然后我用std :: string 替换了声明中的const char.声明现在如下:

std::string serv_con(char app_data[50])
{
    char send_data[1024],recv_data[1024];
    //avoiding code segments irrelevant to the …
Run Code Online (Sandbox Code Playgroud)

c function return-type

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

在C++中哪种递增方法更优越?

我看到有人使用这种方法来增加变量:

r = (r + 1) & 0xf;
Run Code Online (Sandbox Code Playgroud)

这种方法比仅使用更好/更快:

r++;
Run Code Online (Sandbox Code Playgroud)

为什么有人会使用按位,如果只是重复,则使用0xf?

c++ bitwise-operators

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

Haskell编译的基础知识

我正在研究第二个Euler的问题,但是现在我只是试图定义Fibonacci序列.目前,我将我的Fib功能定义为

Fib 0 = 0
Fib 1 = 1
Fib x = Fib (x - 1) + Fib (x - 2)
Run Code Online (Sandbox Code Playgroud)

因为我希望程序依赖于我的键盘输入,所以我使用了

main = do
        putStrLn "Enter desired Fibonacci index: "
        "index" <- getLine
        putStrLn Fib x
Run Code Online (Sandbox Code Playgroud)

并将x定义为 x = read "index"

我很确定我弄乱了缩进和语法.根据我修改代码的方式,运行"ghc /dir/file.hs会让我感觉不到"不在范围内:数据构造函数`Fib'"或"解析错误(可能是错误的缩进)".我真的,真的不喜欢我知道我在做什么,特别是关于如何设置.hs以便编译友好.我已经阅读了大约7个关于使用GHC进行编译的教程,但他们似乎都跳过他们解释的部分编译的基本要求.

如果有帮助,请告诉我如何更具体.我认为我试图理解的两件事是整个"主要"事物是如何与编译相关的,以及如何让它被识别我已经将Fib定义为函数,即使它说它不在范围内.

PS:我无法弄清楚这里的缩进,Stack似乎想把所有东西放在一行,所以我必须把它全部分开.抱歉.

parsing haskell compilation ghc

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

C++禁止从const char*设置char*和char []

这是代码.我不知道它为什么不承认它需要复制内存,我不能强迫它.

 string message="The quick brown fox jumped over the lazy dog.";

  vector<char*> words;

  while(message.length()>0){
    char wtf[message.substr(0,message.find(" ")).c_str().length()]=message.substr(0,message.find(" ")).c_str();
    words.push_back(wtf);
    message=message.substr(message.find(" ")+1);
  }
Run Code Online (Sandbox Code Playgroud)

我看到有类似的线程,但没有.而且,C++似乎无法轻易解决这个问题.

c++ const char

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

BATCH:如何捕获文件的扩展名,或如何进行像regexp这样的模式测试

我正在为Windows命令提示符编写批处理文件,我想使用FOR/R以递归方式遍历目录中的文件 .
但是,在循环内部我想检查扩展名.txt的文件或可能是其他扩展名以便跳过.

我怎样才能做到这一点?在FORFILES中有@ext用于什么?

另外,在命令提示符下是否有类似regexp的东西?

windows cmd batch-file

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

汇编 - 进位标志 - 0xFF

在下一个代码中:

mov ebx, 0xFF
add ebx, 1
Run Code Online (Sandbox Code Playgroud)

为什么没有设置Carry标志?

ebx = 11111111
+   = 00000001
     100000000
Run Code Online (Sandbox Code Playgroud)

x86 assembly

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

获取未定义的引用错误

我希望有人可以指出我正确的方向,找出为什么我收到以下错误:

$~/display/triangleDisplayable.cc:4: undefined reference to `Displayable::Displayable()'
Run Code Online (Sandbox Code Playgroud)

我试图抽象一个类,Displayable并有一个triangleDisplayable实现其方法的类.我有两个头文件是"Displayable.h":

    class Displayable {

    public:
        Displayable();

        virtual int getSizeOfArrays() = 0;
        void display(int size);

    private:
        virtual void init() = 0;
        virtual int getSizeOfPointsArray() = 0;
        virtual int getSizeOfNormalsArray() = 0;

    };
Run Code Online (Sandbox Code Playgroud)

和"triangleDisplayable.h"

    #include "Displayable.h"

    class triangleDisplayable : public Displayable 
    {

    public:
        triangleDisplayable();
        int getSizeOfArrays();

    private:
        void init();
        int getSizeOfPointsArray();
        int getSizeOfNormalsArray();

    };
Run Code Online (Sandbox Code Playgroud)

然后我有"Displayable.cc"

    #include <iostream>
    #include "Displayable.h"

    Displayable::Displayable() {
        std::cout << "testing Displayable constructor" << std::endl;
    }

    void Displayable:display(int size) …
Run Code Online (Sandbox Code Playgroud)

c++

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

我调用 glActiveTexture 和 glBindTexture 的顺序是什么

我想知道什么时候我有一个名为 tex 的纹理,我用glBindTexture(...)和 来创建它glTexImage2D(...)

如果我想将它绑定到特定的纹理单元,我glActiveTexture(GL_TEXTURE0);什么时候调用?

opengl

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

错误处理和monad?

我正在尝试理解如何应用来自Haskel的Maybe-idiom ..我正在阅读http://en.wikibooks.org/wiki/Haskell/Understanding_monads/Maybe,它表明在字典中查找可能会返回a Maybe和该值通过>>=运营商提出.

来自URL的示例:

如果我们想在第三次查询中使用政府数据库查询的结果(比如我们想要查看他们的注册号以查看他们是否欠任何汽车税),那么我们可以扩展我们的getRegistrationNumber函数:

getTaxOwed :: String       -- their name
           -> Maybe Double -- the amount of tax they owe
getTaxOwed name = 
  lookup name phonebook >>=
    (\number -> lookup number governmentalDatabase) >>=
      (\registration -> lookup registration taxDatabase)
Run Code Online (Sandbox Code Playgroud)

或者,使用do-block样式:

getTaxOwed name = do
  number       <- lookup name phonebook
  registration <- lookup number governmentalDatabase
  lookup registration taxDatabase
Run Code Online (Sandbox Code Playgroud)

题:

我该如何处理错误处理?我认为大多数代码都会从告诉出错的地方中受益.它不应仅报告"无法在电话簿或政府数据库中找到John Doe",而应报告哪个资源存在问题.

error-handling monads haskell maybe

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

使用ereg在PHP中验证URL

我正在使用ereg方法验证URL.这是我的代码:

function validationURL($URL) {
    if (ereg("^(http://www|www)[.]([a-z,A-Z,0-9]+)([-,_])([a-z,A-Z,0-9]+)[.]([a-z,A-Z]){2,3}[.]?(([a-z,A-Z]){2,3})[/]?[~]?([/,a-z,A-Z,0-9]+)?$",$URL)){
        return true;
    } else {
        return false;
    }
}


if ($website !="" && $website !=NULL) {
    if (validationURL($website)){
        $websiteOk = true;
    } else {
        $errmsg = $errmsg . "URL Is Invalid.<br>";
        $websiteOk = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我这段代码有什么问题.我测试了www.google.com.my但它没有用.

php

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

动态大小的类指针数组

那些是数组约束:数组有自定义大小,我将在程序顶部读取,这将是指向我自己的类Tree的指针数组,数组需要每个单元格的恒定读取时间.

这是我的代码不起作用: scanf("%d %d",&n,&q);
Tree *pointers = new Tree[n];
pointers[0]->value = NULL;

c++ arrays pointers class dynamic

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