c相关内容

Hayes AT 命令:检测远程挂断?

您应该如何以编程方式检测呼叫中的远程调制解调器何时挂断?我正在编写一个 C 程序,它与 Ubuntu linux 中的 SoftModem 设备 /dev/ttySL0 接口.我能够使用 Hayes AT 命令配置调制解调器并与远程调制解调器通信.但是,我一直无法确定我应该如何检测另一端已挂断电话. 我已经配置了调制解调器,这样当另一端挂断时,设备会打印 NO CARRIER 并切换到命令模 ..
发布时间:2021-11-30 13:51:57 其他开发

对 AT 命令的响应结束

如何确定发送到 GSM 模块的 AT 命令的结尾是什么? 我需要一些字符或字符串来代表每种情况下 AT 命令的结束,因为我发现何时收到整个响应. 我猜它有一些带有“\r\n"序列的东西,但是,这个序列可能在 AT 命令响应的开头? 解决方案 就像你想象的那样 \r\n. 这定义了一行的结尾. 而且只有处理完整的行才有意义. 有些命令只响应 OK\r\n,有些命令响 ..
发布时间:2021-11-30 13:50:58 其他开发

C 非阻塞键盘输入

我正在尝试用 C 语言(在 Linux 上)编写一个程序,该程序会循环直到用户按下某个键,但不需要按键来继续每个循环. 有没有简单的方法可以做到这一点?我想我可以用 select() 做到这一点,但这似乎需要做很多工作. 或者,有没有办法在程序关闭而不是非阻塞 io 之前捕获 ctrl-c 按键进行清理? 解决方案 如前所述,您可以使用 sigaction 捕获 ctrl-c, ..
发布时间:2021-11-30 13:41:16 服务器开发

字符串可以用作数组索引吗?

字符串可以用作 C 中的数组索引吗? 例如:字符串对应值“一个"1“二"2“五"5“十"10 当上面列表中的字符串传递给函数时,函数必须返回上面指示的相应值.这可以通过声明一个以字符串为索引的常量数组来实现 int *x;x["一个"] = 1;x["两个"] = 2;x[“五"] = 5;x["十"] = 5;return x["函数接收到的字符串"]; 上述逻辑没有按预期工作; ..
发布时间:2021-11-30 12:58:15 其他开发

C 中的关联数组

我正在实施一种将一组数据传输到可编程加密狗的方法.加密狗基于智能卡技术,可以在内部执行任意代码.输入和输出数据作为二进制块传递,可以通过输入和输出指针访问. 我想使用关联数组来简化数据处理代码.一切都应该这样工作: 首先是宿主应用程序: //C++ 中的宿主应用程序in_data["method"] = "calc_r";in_data["id"] = 12;in_data["loc ..
发布时间:2021-11-30 12:53:01 其他开发

“错误:左值需要作为赋值的左操作数";在条件运算符中

我是 C 新手,今天我学会了“?"运算符,它是 if-else 语句的短类型.但是,当我执行此代码时: int b;整数 x;b=3 我收到一个错误“错误:左值需要作为赋值的左操作数".我不明白为什么会这样.我心目中的过程是程序先给x赋值34,然后再给b赋值x的值,即34.另一方面,我可以将语句用作 int b;整数 x;b=3 没有任何错误.我看了看我的书,但没有任何帮助.为什么我不能使 ..
发布时间:2021-11-30 12:36:29 其他开发

为什么我们可以改变“const"的值?限定变量?为什么允许指针,但不允许赋值?

考虑以下 2 个程序 prog1 和 prog2.这里如果我尝试更改 const 限定变量 i 的值 使用指针 ptr,我收到警告(不是错误)“初始化丢弃来自指针目标类型的限定符|",但程序仍然运行并显示新值.但是如果我尝试使用赋值语句在第二个程序中更改 i 的值,我会得到 error(不是警告)assignment of read- 仅变量 'i'|. 这里是由这个前提引起的混淆: ..
发布时间:2021-11-30 12:35:49 其他开发

C/C++ 中的链式赋值是未定义行为吗?

忽略变量的类型,像 a=b=c 这样的表达式在 C 和 C++ 中都定义了行为吗? 如果是这样,请谁能给我官方证据,比如引用标准? 附言我搜索了链式分配,但我得到的一切都是关联性,但我在 C99 标准中没有找到任何关于它的文本.也许我做错了?希望任何人都可以帮助我. 解决方案 来自 C++ 标准 5.17 赋值和复合赋值运算符 [expr.ass] 1 赋值运算符 (=) ..
发布时间:2021-11-30 12:34:25 C/C++开发

如何比较字符?

我正在学习 c.我有个问题.为什么我的程序不起作用? #include#include#include字符命令;无效的执行(){如果(cmd ==“e"){printf("%c", cmd);//退出(0);}别的{printf("非法参数");}}无效输入(){scanf("%c", &cmd);执行();}int main(){输入();返回0;} 我插入了一个“e",但它表示非法参数. ..
发布时间:2021-11-30 12:34:13 其他开发

printf() 中赋值运算符的问题

这是代码 int main(){整数 x=15;printf("%d %d %d %d",x=1,x10);返回0;} 输出为1 1 1 1 我期待 1 1 15 1 作为输出, x*1 等于 15 但这里 x*1 是 1 ,为什么?在 printf() 中使用赋值运算符或修改值会导致 未定义行为? 解决方案 您的代码产生未定义的行为.函数参数评估彼此之间没有顺序.这意味着 ..
发布时间:2021-11-30 12:33:27 其他开发

在 C 中 a += b 比 a = a + b 更有效吗?

我知道以下一些语言: a += b 比: 更有效率 a = a + b 因为它不需要创建临时变量.在 C 中是这种情况吗?使用 += 是否更有效(因此还有 -= *= 等) 解决方案 这里有一个明确的答案... $ catjunk1.c#include int main(){长 a, s = 0;对于 (a = 0; a int main(){长 a, s = 0;对于 (a ..
发布时间:2021-11-30 12:31:23 其他开发

C/C++ 赋值运算符实现的底层细节.它返回什么?

我是 C++ 世界(还有 C)的新手.并且不知道它的所有细节.但有一件事真的让我很困扰.它是这样的结构:while (a=b) {...} .据我所知,这个魔法是有效的,因为 C 和 C++ 中的赋值运算符会返回一些东西.那么问题来了:它返回什么?这是记录在案的事情吗?它在 C 和 C++ 中的工作方式是否相同.非常感谢有关赋值运算符及其在 C 和 C++ 中的实现(如果有差异)的低级详细信息! ..
发布时间:2021-11-30 12:30:46 C/C++开发

分配指向整数的指针

我可以分配一个指向整型变量的指针吗?像下面这样. int *pointer;int array1[25];int addressOfArray;指针 = &array1[0];addressOfArray = 指针; 可以这样做吗? 解决方案 并非没有明确的强制转换,即 addressOfArray = (int) 指针; 还有一个警告: 6.3.2.3 指针 ... 6 任 ..
发布时间:2021-11-30 12:30:22 其他开发

“来自整数的指针/来自没有强制转换的指针的整数"问题

这个问题是关于整数和指针问题之间的所有初始化/分配的常见问题解答. 我想编写代码,将指针设置为特定的内存地址,例如 0x12345678.但是当用 gcc 编译器编译这段代码时,我得到“初始化使指针从整数而不进行强制转换"警告/错误: int* p = 0x12345678; 同样,这段代码给出了“初始化从指针生成整数而不进行强制转换": int* p = ...;int i = p; ..
发布时间:2021-11-30 12:25:39 其他开发

c语言中如何返回一个变量名并赋值返回的变量的值

我想使用一个动态变量,它的值会在运行时发生变化. 例如 char * aVar = "ABC";char * bVar = "DEF";char * cVar = "XYZ";字符 *dVar = NULL;dVar = foo1();打印 dVar; foo1 内部调用 foo2,它应该返回变量名(如 "aVar", "bVar"> 或 "cVar").foo1 应该返回根据 foo2 ..
发布时间:2021-11-30 12:22:44 其他开发

如何在创建多维数组后一次将多个值分配给它 - 在 C 中?

我正在用 C 编程,想知道是否可以一次将多个值分配给多维数组?我尝试了一些技术,但都失败了!我对遍历数组来分配值不感兴趣(我希望以快速的方式为数组中的所有索引分配新值).我正在使用的数组:ary[4][4]. 解决方案 由于数组不是可修改的左值,因此它不能出现在赋值的左侧.您可以对其进行初始化,也可以通过索引分配单个成员. 6.3.2.1 一个可修改的左值是一个没有数组类型的左 ..
发布时间:2021-11-30 12:20:12 其他开发

在 C 中为 const char * 分配定义常量

我不完全确定哪个是将常量分配给 const char * 的正确方法.两种方式都可以吗? #define MSG1“我的消息#1"#define MSG2“我的消息#2"#define MSG3“我的消息#3"const char *opt1 = NULL;const char opt2[20];开关(n){情况1:opt1 = 味精1;//或者应该是:strcpy(opt2, MSG1);休息 ..
发布时间:2021-11-30 12:20:03 其他开发

C 从文字浮点数赋值

在阅读 关于 3D 图形的书的一部分时 我遇到了以下作业: const float vertexPositions[] = {0.75f, 0.75f, 0.0f, 1.0f,0.75f、-0.75f、0.0f、1.0f、-0.75f、-0.75f、0.0f、1.0f、}; 为什么需要 f 后缀?不能从变量的类型确定文字的类型吗?我相信没有 f 浮点文字被解释为双打,但为什么当数组显然是 fl ..
发布时间:2021-11-30 12:19:18 其他开发

断言(0)是什么意思?

我在一次考试中遇到了这样的问题,但我仍然不太确定如何回答.我知道断言是测试程序的方法,但是我不太确定 assert(0) 正在检查什么.这是一个技巧问题吗?它总是会失败,但我不明白为什么.它在检查什么? 任何解释都会很棒,谢谢. 解决方案 它总是会失败.差不多就是这样.它总是会失败,原因与“assert(x == 5)"在 x = 5 时会成功的原因相同. 如果您要求一个应用程 ..
发布时间:2021-11-30 11:42:08 C/C++开发