在C语言中,"return~0"是什么意思?

Mal*_*ala 11 c return-value

我正在处理包含的一些C代码

return ~0;
Run Code Online (Sandbox Code Playgroud)

那是什么意思?google几乎不可能......

use*_*034 20

〜是一个按位not/complement,也就是说它将所有0改为1,反之亦然.~0是一个值,所有位都设置为1.


RBe*_*eig 6

在检查代码时回答这类问题的关键是要认识到语言的足够结构,以便知道要问什么问题.例如,该return语句需要一个表达式,该表达式与函数本身的声明返回类型兼容.

知道~0必须是一个表达式,它或者是一个非常有趣的编写数字的方法,或者它是一个你不认识应用于常数零的运算符.后一个假设很容易检查,谷歌搜索"C语言操作员"将迅速导致数十个运营商表.几乎任何一个都会告诉您~运算符是一个按位而非一元运算符,它反转其操作数的每个位.在这种特定情况下,它将有符号整数转换为0用其所有位设置表示的整数.

在您将遇到的大多数平台上,该整数的值为-1.