cast-1.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 42 行

C
42
字号
/* Test diagnostics for bad or doubtful casts.  Test with no special   options.  *//* Origin: Joseph Myers <joseph@codesourcery.com> *//* { dg-do compile } *//* { dg-options "-std=gnu99" } */struct s { int a; } sv;union u { int a; } uv;int i;long l;char c;void *p;float fv;voidf (void){  (int []) p; /* { dg-error "error: cast specifies array type" } */  (int ()) p; /* { dg-error "error: cast specifies function type" } */  (struct s) sv;  (union u) uv;  (struct s) i; /* { dg-error "error: conversion to non-scalar type requested" } */  (union u) i;  (union u) l; /* { dg-error "error: cast to union type from type not present in union" } */  (int) sv; /* { dg-error "error: aggregate value used where an integer was expected" } */  (int) uv; /* { dg-error "error: aggregate value used where an integer was expected" } */  (float) sv; /* { dg-error "error: aggregate value used where a float was expected" } */  (float) uv; /* { dg-error "error: aggregate value used where a float was expected" } */  (_Complex double) sv; /* { dg-error "error: aggregate value used where a complex was expected" } */  (_Complex double) uv; /* { dg-error "error: aggregate value used where a complex was expected" } */  (void *) sv; /* { dg-error "error: cannot convert to a pointer type" } */  (void *) uv; /* { dg-error "error: cannot convert to a pointer type" } */  (_Bool) sv; /* { dg-error "error: used struct type value where scalar is required" } */  (_Bool) uv; /* { dg-error "error: used union type value where scalar is required" } */  (void) sv;  (const void) uv;  (void *) c; /* { dg-warning "warning: cast to pointer from integer of different size" } */  (void *) (char) 1;  (char) p; /* { dg-warning "warning: cast from pointer to integer of different size" } */  (char) (void *) 1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?