小编Eli*_*gan的帖子

为什么 volatile 在 C++20 中被弃用?

根据cppreferencevolatile关键字的大多数用法在 C++20 中将被弃用。的缺点是volatile什么?不使用时的替代解决方案是什么volatile

c++ volatile c++20

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

为什么Visual C++会在C中警告从const void**到void*的隐式转换,而不是在C++中?

摘要

当C程序尝试将指针转换为指向数据(如或)的指针时,Microsoft Visual Studio中的C/C++编译器会发出警告C4090(即使这样的类型实际上不是指针).更奇怪的是,同一个编译器默默接受编译为C++的相同代码.constconst void **const char **void *const

什么是这种不一致的原因,以及为什么Visual Studio的(不像其他编译器)有隐含转换的指针指向一个问题constvoid *

细节

我有一个C程序,其中在变量参数列表中传递的C字符串被读入一个数组(通过va_arg调用的循环).由于C字符串是类型const char *,跟踪它们的数组是类型const char **.这个带有const内容的字符串指针数组本身是动态分配的(带calloc)和I free它在函数返回之前(在处理完C字符串之后).

当我使用cl.exe(在Microsoft Visual C++中)编译此代码时,即使警告级别较低,该free调用也会触发警告C4090.因为free需要一个void *,这告诉我编译器不喜欢我已经转换const char **为a void *.我创建了一个简单的例子来证实这一点,我尝试将a转换const void **void *:

/* cast.c - Can a const void** be cast …
Run Code Online (Sandbox Code Playgroud)

c c++ const visual-studio visual-c++

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

E:无法找到包装点

我一直在尝试设置Python-android环境,并不断收到此错误消息:

~$ sudo apt-get install build-essential patch git-core ccache ant pip python-devsudo: /var/lib/sudo/plaix writable by non-owner (040777), should be mode 0700
[sudo] password for plaix: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package pip
Run Code Online (Sandbox Code Playgroud)

python ubuntu android pip

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

GCC 4.6中奇怪的诊断实践行为

我有一个C程序,其中包含一些尚未使用的静态函数.我想禁用这些特定功能的警告.我不想禁用所有-Wunused-function警告.我正在使用GCC 4.6.特别:

ek@Apok:~/source$ gcc --version
gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Run Code Online (Sandbox Code Playgroud)

我遵循文档中的建议(使用pushpop),但我无法使其工作.

我已经创建了一些简化的源代码来调查问题.我正在编译它们gcc -Wall -o pragma pragma.c(在哪里pragma.c).我的第一个版本pragma.c看起来像这样:

void foo(int i) { }
static void bar() { }
int main() { return 0; }
Run Code Online (Sandbox Code Playgroud)

正如所料,我在编译时得到了这个:

pragma.c:3:13: warning: ‘bar’ defined but …
Run Code Online (Sandbox Code Playgroud)

c gcc warnings pragma gcc4

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

标签 统计

c ×2

c++ ×2

android ×1

c++20 ×1

const ×1

gcc ×1

gcc4 ×1

pip ×1

pragma ×1

python ×1

ubuntu ×1

visual-c++ ×1

visual-studio ×1

volatile ×1

warnings ×1