1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Neznaika |
13.07.2007 12:44
Сообщение
#1
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: 0 |
Извиняюсь за возможное нарушение правил, но решил поместить пример программы,
чтобы сразу было понятно что к чему. ПРОГРАММА: Код program VarStr; uses Dos; procedure Proc( var Dir : DirStr; var Name : NameStr; var Ext : ExtStr ); begin end; procedure Proc2( var B : Byte; var W : Word; var L : LongInt ); begin end; procedure Proc3( var I : Integer; var W : Word ); begin end; procedure Proc21( B : Byte; W : Word; L : LongInt ); begin end; var SD, SN, SE : String; SDir : DirStr; SName : NameStr; SExt : ExtStr; B : Byte; W : Word; L : LongInt; I : Integer; begin (*Proc(SD,SN,SE); { НЕЛЬЗЯ! Ошибка 26: Type mismatch(несовпадение типов). }*) Proc(SDir,SName,SExt); { Всё в порядке! } (*Proc2(B,B{Error 26!},B);*) (*Proc2(W{Error 26!},W,W);*) (*Proc2(L{Error 26!},L,L);*) Proc2(B,W,L); { Всё в порядке! } (*Proc3(W{Error 26!},W);*) (*Proc3(W{Error 26!},I);*) (*Proc3(I,I{Error 26!});*) Proc3(I,W); { Всё в порядке! } Proc3(Integer(W),Word(I)); { Всё в порядке! } Proc21(B,W,L); { Всё в порядке! } Proc21(L,B,W); { Всё в порядке! } Proc21(W,L,B) { Всё в порядке! } end. И сам ВОПРОС(недеюсь он теоретический(имеет отношение к синтаксису, семантике и т.д. и т.п)): Почему типы фактических параметров переменных, задаваемых при вызове подпрограммы, должны СОВПАДАТЬ(быть РАВНЫМИ) соответствующим формальным VAR-параметрам. Почему здесь ошибка 26(Type mismatch) - НЕСООТВЕТСТВИЕ ТИПОВ превращается в ошибку НЕСОВПАДЕНИЕ ТИПОВ. Пожалуйста, если кто-нибудь знает, объясните. |
![]() ![]() |
| volvo |
11.08.2007 17:00
Сообщение
#2
|
|
Гость |
Neznaika, во-первых, будет ли твоя программа компилироваться в Дельфи (в частности, в D6 - ибо из BDS2006 у меня установлен только Builder, так что проверить не могу), зависит напрямую от установок директив компиляции. К примеру, при добавлении первой строкой модуля: {$T+} твое утверждение:
Цитата компилятор пропускает становится ложным, хотя при {$T-} все компилируется...Proc(Word((@B)^),DWord((@B)^)); ??? А какие там значения директив по умолчанию на твоем компьютере выставлены - это я не знаю, и догадываться тоже не особо хочется... Сообщение отредактировано: volvo - 11.08.2007 17:00 |
Neznaika Несоответсвие типов VAR-параметров подпрограмм(error 26). 13.07.2007 12:44
compiler procedure p( const s:string );
begin
writeLn(s);
... 13.07.2007 13:25
volvo Ничего никуда не превращается. Как всегда было Err... 13.07.2007 13:43
Neznaika compiler:
Не смешно, мой пример СИНТАКСИЧЕСКИ КОРР... 13.07.2007 16:14
volvo Если ты не понял того, что написано в предыдущем п... 13.07.2007 16:31
Neznaika volvo:
Я не хочу ругаться, я разобраться хочу.
Про... 13.07.2007 18:02
Neznaika Вот например, что написано у Епанешниковых(Програм... 14.07.2007 15:49
compiler Получается, что типы данных формальных и фактическ... 14.07.2007 16:05
Neznaika
тебе же написали
а еще многие ошибки вообще не ... 14.07.2007 16:52
volvo Дельфи? Сорри, только не Дельфи:
Что я делаю не... 14.07.2007 16:58
Neznaika
unit Unit1;
interface
uses
Windows, Messages,... 14.07.2007 17:07
мисс_граффити Естественно.
А где в этом примере несоответствие м... 14.07.2007 19:57
volvo Разговор был про Var-параметры... Попробуй добавит... 14.07.2007 21:07
Neznaika Тьфу, чёрт. Теперь вроде всё "правильно... 14.07.2007 23:22
Neznaika BDS2006(компилятор Delphi для Win32):
...
var
W... 18.07.2007 16:42
hardcase
Уважаемые эксперты, объясните пожалуйста
1) Что... 8.08.2007 21:16
Neznaika
hardcase, спасибо.
Но всё равно, тёмное дело. В... 11.08.2007 16:36
Neznaika Да, с {$T+} Proc(Word((@B)^),DWord((@B)^)); н... 11.08.2007 17:41
hardcase Есть такое понятие в программировании - безопасный... 11.08.2007 18:23![]() ![]() |
|
Текстовая версия | 8.12.2025 17:24 |