在下面的表示中,
struct Cat{
char *name;
struct Cat mother;
struct Cat *children;
};
Run Code Online (Sandbox Code Playgroud)
编译器为第二个字段提供以下错误,但不是第三个字段,
error: field ‘mother’ has incomplete type
struct Cat mother;
^
Run Code Online (Sandbox Code Playgroud)
如何理解这个错误?
在下面的代码中:
package main
import (
"fmt"
)
func main() {
var a, b int8 = -4, 4
fmt.Printf("%b\n", a)
fmt.Printf("%08b\n", a)
fmt.Printf("%08b\n", b)
//fmt.Println("a and b have same sign?", (a^b) >= 0)
}
Run Code Online (Sandbox Code Playgroud)
给出带负号的输出:
-100
-0000100
00000100
Run Code Online (Sandbox Code Playgroud)
如何查看负数的二进制表示-4?
使用VS 2003生成的用于生成32位二进制文件的代码在没有单个警告的情况下构建.
相同的代码,没有单一的代码更改,编译和链接成功使用Visual Studio 2010编译器生成64位二进制BUT与下面的警告列表.
所以,我的问题是,下面列表中的任何警告都是运行时的问题吗?
pcd.c(248) : warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
pcd.c(377) : warning C4244: '=' : conversion from 'uintptr_t' to 'ULONG', possible loss of data
pcd.c(236) : warning C4100: 'argv' : unreferenced formal parameter
i.c(183) : warning C4100: 'lpReserved' : unreferenced formal parameter
api.c(506) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use …Run Code Online (Sandbox Code Playgroud)