【发布时间】:2019-10-02 16:14:05
【问题描述】:
我有以下几点:
//h.h file
#pragma once
struct A { int x; };
//a.c file
#include "h.h"
struct A* a;
//b.c
#include "h.h"
extern struct A* const a;
int main() {}
我在extern 声明上添加了一个额外的const。添加这个const 会是UB?
如果它不是 UB,那么在 main 中执行以下操作将是 UB?
(*(struct A**)&a) = malloc(sizeof(struct A));
【问题讨论】:
-
FWIW
#pragma once也是假的。 :-)
标签: c constants language-lawyer undefined-behavior extern