c言語、constは迂回されます
1024 ワード
現在のgccではconstがポインタで迂回される可能性があることに注意してください.
linux:
vs 2010は迂回されません:
linux:
// demo.cpp : 。
//
#include "stdlib.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
const int ii = 1234;
printf("ii = %d
", ii); // error C2440: “ ”: “const int *” “int *”
int* p = ⅈ
(*p) = 444;
printf("ii = %d
", ii);
return 0;
}
vs 2010は迂回されません:
// demo.cpp : 。
//
#include "stdafx.h"
#include "stdlib.h"
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
const int ii = 1234;
printf("ii = %d
", ii); // error C2440: “ ”: “const int *” “int *”
int* p = ⅈ
(*p) = 444;
printf("ii = %d
", ii);
return 0;
}