相关疑难解决方法(0)

为长值明确声明L或UL的原因是什么?

从一个例子

unsigned long x = 12345678UL
Run Code Online (Sandbox Code Playgroud)

我们总是知道编译器需要在上面的例子中只看到"long"来设置4个字节(32位)的内存.问题是为什么我们应该在长常量中使用L/UL,即使在声明它很长之后也是如此.

c constants

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

函数x的隐式声明

我很清楚函数原型,这个错误似乎是一个函数声明错误,这意味着我真的很困惑,为什么我看到这个警告,从而错误.

这几乎就像gcc完全忽略了我的函数原型.这是编译器错误吗?

为了简洁起见,我没有在单独的头文件中声明此函数,尽管它应该没有区别.

gcc输出:

$ gcc -Wall -std=c99 -pedantic primefactors.c
primefactors.c: In function ‘main’:
primefactors.c:8:5: warning: implicit declaration of function ‘largestprime’ [-Wimplicit-function-declaration]
primefactors.c: At top level:
primefactors.c:12:6: error: conflicting types for ‘largestprime’
primefactors.c:8:20: note: previous implicit declaration of ‘largestprime’ was here
Run Code Online (Sandbox Code Playgroud)

码:

#include <stdio.h>
#include <math.h>

long largetsprime(long);

int main()
{
    printf("%d\n", largestprime(600851475143));
    return 0;
}

long largestprime(long num)
{
    int highest;
    int mid = sqrt(num);
    for (int i = 2; i < mid; i++) {
        if (mid % i …
Run Code Online (Sandbox Code Playgroud)

c algorithm prime-factoring

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

数字末尾的L是做什么的?

可能重复:
"L"在整数文字的末尾是什么意思?

例如

int one = 20;
int two = 20L;
cout << "one: " << one << " two: " << two << endl;
cout << "one: " << sizeof(one) << " two: " << sizeof(two) << endl;
Run Code Online (Sandbox Code Playgroud)

输出20两次然后输出两次.

c++

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

0x0000FFFFFFFFFFFFLL做了什么

我看过他们使用的一些代码'0x0000FFFFFFFFFFFFLL'.我不知道它做了什么.有人可以解释一下这段代码的作用.

int64 l1;
l1 = *(Int64 *)&d1 & 0x0000FFFFFFFFFFFFLL;
Run Code Online (Sandbox Code Playgroud)

虽然这不适合'stackoverflow'但我无处可寻.我是编程新手,请帮忙.

c c++

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

在某些变量初始化中,"l"是什么意思 - C++

在一些变量初始化中"l"的含义是什么?例如:

#define maxpossible     (1000000000L)
double A = 1L;
double B = 999999999l;
Run Code Online (Sandbox Code Playgroud)

"L"和"l"之间有区别吗?

c++ variables initialization declaration long-integer

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