c有关的问题


Main () 和int main() 之间有什么区别?

我熟悉int main () 和void main (),但我看到我们在uni的教授使用main () -只是main (),没有别的-在他的代码中,它到底是做什么的?我读到它在新的C上不起作用


分段故障处理

我有一个应用程序,我用它来捕捉任何分段错误或ctrl-c。
使用下面的代码,我能够捕捉分段错误,但是处理程序被一次又一次地调用。怎么ca.


如何在C中从UTC转换为本地时间?

这是一个简单的问题,但解决方案似乎远非简单。我想知道如何从UTC转换为本地时间。我正在寻找C + + 的标准和或多或少的解决方案。


堆栈内存有限制吗?

我正在浏览其中一条线索。
一个程序崩溃是因为
它在函数内部本地声明了一个 10 ^ 6 数组。
给出的原因是堆栈上的内存分配失败导致cra.


Glibc函数strtoull() 失败

我面临的问题与c库函数strtoull,这是返回我错误的输出。
Int main(int argc,char * argv[])
{
Unsigned long long int intValue;
If (atoi(argv[2]) = = 1)
……


数组对象的最后一个元素的基本原理是什么?

根据N1570 (C11 草案) 6.5.6/8 添加剂运算符:
此外,如果表达式P指向数组的最后一个元素
对象,表达式 (P) 1 点超过最后一个元素的.


如何修改char * 的值?

嗨,我有下面的程序。
Char * x = "abc";
* X = 48;
Printf ("% c",* x);
这给了我输出a,但我期望输出为 0。
编辑
你能建议我可以做什么,以便在运行时存储数据在
……


用C # 中的最短字符数重复和打印一个字符

目前,我试图在尽可能少的字符中重复一个字符。作为一个例子,我实际上正在使用类似这样的东西来重复一系列的空间:
Printf ("% * s",我.


使用的是没有所有成员分配未定义的结构?

在块范围内考虑此代码:
Struct foo { unsigned char a; unsigned char b; } x,y;
X.a = 0;
Y = x;
C [N1570] 6.3.2.1 2 表示 “如果左值指定了一个自动存储持续时间的对象.


在解密程序中使用负数模的问题

我对C相当陌生,最近一直在做一个简单的加密/解密程序。我设法得到了加密罚款,但我在解密时遇到了障碍。
在relev……


在这种情况下了解悬挂指针行为

我有一个指针,默认情况下它携带NULL,然后它等待一些事件,并获得一个值,如果事件发生,后来我释放指针在其他地方,但即使释放指针.


在c中,未初始化的整数是否总是默认为 0?

我正在阅读nginx的源代码,发现它没有初始化许多数值变量,包括ngx_int_t ngx_last_process;,这里ngx_int_t定义为long int
# 如果 0
Ngx_last_process.


C预处理器与变量串联

可能重复:
C预处理器和串联
是否有可能用变量名连接C预处理器?
# 定义宽度 32
Int dataWIDTH;
//DataWIDTH应该解释.


这些关于指针的语句是否具有相同的效果?

这.
Char * myString = "hello";
……有同样的效果吗?
Char actualString[] = "hello";
Char * myString = actualString;


函数编程 (Currying) 在C/问题与类型

作为一个染色的功能程序员,我发现很难不尝试将我最喜欢的范例塞进我正在使用的任何语言。在写一些C的时候,我发现我想咖喱我的一个


如何将堆栈变量对齐到 16 字节边界

我有以下局部变量 (将存储在堆栈中)。
Struct test1 {
Int a;
Int b;
Char c;
};
如何将整数a的起始地址与中的 16 字节边界对齐.


自动变量初始化为零

# Include <stdio.h>
Int main()
{
Int x;
Printf ("% d \ n",x);
X = x>0?x:x + 1;
Printf ("% d \ n",x);
}
在这个x初始化为 0,但为什么呢?在GCC中编写并编译代码


使用动态字符串的C中的文件I/O

我试图编写一个简单的程序,它可以执行以下操作:
选择文件
选择如何处理文件 (fopen模式: r,w,a,r.)
写入文件
这是我的代码到目前为止:
//获取未来


良好的详细性宏 (C99)

我想写我想象的是一个相当常见的宏。我想通过定义一堆以下形式的宏来模拟许多POSIX程序上重复的 “-v” 选项:
# 定义.


没有函数指针的状态机

我已经实现了一个复杂的状态机与安全SIL 4 系统的许多状态转换。
此实现的后骨是使用函数指针完成的。
当一切都在航行时.


从C程序中保存大量数值数据 (GBs) 的最佳格式是什么?

我是一个物理学家,通常处理使用C程序生成的大量数值数据。通常,我将所有内容作为列存储在ASCII文件中,但这导致了大量的fil.


处理器行为解释

问了这个问题后,我很困惑,决定为C编译器程序构建类似的测试。这是我的代码:
# Include <stdio.h>
# Include <time.h>
# Include <math.h>
#


多源文件中的extern易失性

我有一些全局变量,我需要在多源文件上共享。我已经阅读如何在不同之间共享变量。C文件?并执行以下操作:
FileA.h:
Extern int a;
FileA.c:
在.


比特域在结构中的并集

我有这两个结构:-
1.
Typedef struct bitfield
{
无符号int a:16;
无符号int b:17;
联合
{
无符号int c:4;
无符号int d:32;
};
} Bfield;.


有人知道位模的更好方法吗?

我有 2 个大的数字,一个约 4096 位和其他 2048 位,存储在一个结构:
Typedef uint32_t word;
Typedef struct BigNumber {
字 [128];
} BigNumber;
我必须做


Linux内核调试打印输出?

有没有更好的方法来调试Linux内核中的打印输出?
现在乱扔代码:
Printk (KERN_DBG "% s:% d - % s() <message>",_ _ FILE __,_ _ LINE __,_ _ FUNCTION _ _ );
这不是.


是否需要在free() 之前检查指针是否为null

Ì 用于在释放之前确保指针不为null,所以我通常会破坏动态创建的结构,如下所示:
节点 * destroy_node (节点 * Node) {
If (节点) {
空闲 (节点).


GDB返回<optimized out>对于数组值

我试图完成欧拉项目的问题 4,我已经尝试调试我的解决方案很长一段时间了。Bug本身不是我问题的一部分 -- 我不明白为什么GDB不会显示m.


用于测量OpenMP执行时间的clock_gettime() Vs. gettimeofday()

我正在开发一些C代码,它正在实现一个三重嵌套的for循环来计算矩阵矩阵乘法,同时使用OpenMP将其并行化。我试图准确地测量数量.


Stdint的int8_t可以存在于没有 8 位字节的体系结构上吗?

显然,有些架构没有 8 位字节。
似乎这样的体系结构会排除int8_t (在stdint.h中定义) 类型的存在,因为C,从我的理解.


我可以做什么来优化下面的代码?

Int FindingMoves(int input1) {
Int结果 = 0;
Int input2 = input1 1;
Result = (2 * input2 1) * (2 * input2 1);
返回结果;
}
我应该怎么做才能优化上面的C pro.


AVX2 1GB长阵列

我有一个 1gb长的数组,在a中浮动。Bin文件。读完之后,我如何用avx2 指令对元素求和,并打印结果?
我用杰克的答案编辑了我的代码。


是否有任何平台,指向不同类型的指针具有不同的大小?

C标准允许指向不同类型的指针具有不同的大小,例如sizeof(char *) != 允许使用sizeof(int *)。然而,它确实要求如果指针被转换为void * 和.


静态在ANSI-C中是什么意思

可能重复:
“静态” 在C程序中是什么意思?
静态关键字在C中是什么意思?
我正在使用ANSI-C。我在几个代码示例中看到,它们使用静态keyw.


值 12000000000 的C语言数据类型

我想要一个数据类型,可以保存C中的值 12,000,000,000 (120亿)。哪个数据类型接受此值?
我已经为它尝试了long int和long long int。


当没有null终止符时,C如何识别字符数组的结尾?

由于C字符数组需要一个null终止符,以下代码打印四个a s和一些垃圾字符。
Char y[4] = {'a','a','a','a'};
Printf ("y = % s \ n",y);
输出:
Y = aaaa �


分段故障在返回后?

我在返回执行后得到分段故障。为什么它在返回后而不是在strcpy?
Int main()
{
Char a[2];
Strcpy (a,"0123456789101112131415161718192021222324252627.


无法创建整数数组以容纳字符

我是编程新手,几周前开始学习c。我在一本书中读到字符数组应该以 \ 0 结尾,但是当我创建一个没有 \ 0 的数组时,它工作正常。它是如何poss.


是否有可能在一个长int变量中存储 2 个 32 位值?

我想在一个单一的长int变量中存储两个 32 位值。
您将如何使用C在 32 位操作系统上做到这一点?是否有可能将数据存储在单个长变量中?如果是的话,那d.


Rand () 在C中如何工作?

我知道rand() 生成一个随机数。我已经找到了关于它的这个例子:
# Include <stdio.h>
# Include <stdlib.h>
Int main()
{
Int i,n;
Time_t t;
N = 5;
/* 初始化


当使用-fwrapv时,gcc中的签名溢出仍然是未定义的行为吗?

背景
默认情况下,签名溢出是未定义的行为。
我对gcc的理解 (基于 https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html 和-fwrapv做了什么?) 是使用-


Segfault不会发生

我有以下c代码:
# Include <stdint.h>
# Include <stdio.h>
Int main (){
Uint8_t * 数组;
Int i = 0;
对于 (;i<32120;i + +)
Printf ("Array[% d] = % d \ n",i,*(array.


如何将MSB复制到字节的其余部分?

在中断子程序 (每 5 µ s调用) 中,我需要检查一个字节的MSB,并将其复制到字节的其余部分。
我需要做一些像:
If (MSB = = 1){byte = 0b11111111}
Else {byte =


Union C中的结构偏移问题

我在Keil的C中有一个问题,下面是
这是示例C代码。
结构A
{
Uint8_t头;
Uint16_t卷;
Uint16_t temp;
Uint8_t页脚;
};
Union {
Struct A Packet;


调用另一个对象文件中的函数,而不使用共享库中的PLT?

我有两个汇编代码,code1.s和code2.s,我想从这两个构建一个可重定位 (使用-fPIC开关) 共享库。
我想要code2.s调用一个名为myfun1 的函数,该函数定义在


负整数数>> 31 = -1 不是 1?

所以,假设我有一个有符号整数 (几个例子):
-1101363339 = 10111110 01011010 10000111 01110101 二进制.
-2147463094 = 10000000 00000000 01010000 01001010 二进制.
-20552 =


如果使用编译错误 -- 带有gcc的静态标志

当我尝试编译静态时,我得到以下错误:
Gcc defrag.c -o abc.exe -- 静态
/Usr/bin/ld: 找不到-lc
Collect2: 错误: ld返回 1 退出状态
然而,同样的事情


评价的顺序点和顺序

我正在阅读K & R,在评估 [I] = i这样的表达时,我发现了这个关于行为不确定性的例子;
6.5.2 美元的C99 规格表示
在上一个和下一个之间


Malloc和scanf字符串

下面一个简单的程序与malloc和scanf与 % s得到一个字符串如下,给我一个输出我无法理解。虽然我只有 5 个字节,但我的输入字符串已经超过了上面的.


检查宏参数是否为指针

是否有一些 “好” 的方法来检查传递给宏的变量是否是指针?E.g.
# 定义IS_PTR(x) 的东西
Int a;
# 如果IS_PTR(a)
Printf (“我们有指针 \ n”);
# Else
Printf (“不是指针我们.


上一页 下一页