Skip to main content

Конференции

Просмотр конференции fido7.su.c-cpp:

Предыдущее Следующее

Дата: 02 Jul 2017, 15:14:14
От: Konstantin Simonov @ 2:466/466.104
Кому: Rinat H. Sadretdinow
Тема: const


Hello, Rinat!

 MM>> void f(const double c[3][3])
 RHS> Это потому что тут 'const' есть
 MM>>     double d[3][3];
 RHS> А тут 'const' нет.
 MM>>     f(d);

const только говорит о том, что массив внутри функции не изменяется.

Для интереса сделал такую программку.

Файл exp.c:
===================================================
#include <stdio.h>

void f(const double c[3][3]) 

int i,j;

 for (i=0;i<3;++i)
 {
  for (j=0;j<3;++j) printf(" %3f", c[i][j]);
  puts("\n");
 }

void main(void)
{
double d[3][3];
int i,j,k;

 for (i=0,k=0;i<3;++i) for (j=0;j<3;++j,++k) d[i][j] = k;
 f(d);
}
===================================================

С экрана:
===================================================
D:\SK_SOFT\Exp>wcl386 -d0 -bc -mf exp.c
Open Watcom C/C++32 Compile and Link Utility Version 1.9
Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
        wcc386 exp.c  -d0 -bc -mf
Open Watcom C32 Optimizing Compiler Version 1.9
Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
exp.c: 20 lines, included 771, 0 warnings, 0 errors
Code size: 160
        wlink @__wcl__.lnk
Open Watcom Linker Version 1.9
Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
loading object files
searching libraries
creating a Windows NT character-mode executable

D:\SK_SOFT\Exp>exp.exe

 0.000000 1.000000 2.000000

 3.000000 4.000000 5.000000

 6.000000 7.000000 8.000000
===================================================

 MM>> P.S. Сомневаюсь, что это важно, но на всякий слyчай: pure C.
 RHS> Это как раз и важно. Лечится переходом компиляции как исходника C++

В данном случае это совершенно не важно.
При компиляции .cpp лишь появилось предупреждение
exp.cpp(14): Warning! W914: col(1) 'main' must return 'int'


WBR, Konstantin.

--- wfido
Origin: Fidonet 2:5000/111.11 Email konsim@inbox.ru (2:466/466.104)

Предыдущее Следующее

К списку сообщений
К списку конференций