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 + -
显示快捷键?