Arrays Pascal是否自动“启动”;“修剪”;是函数输入参数的数组?
我正在开发一个Pascal-to-C端口,这两种语言在处理字符串方面的差异已经成为一个令人沮丧的问题 如果我声明一个大小为Arrays Pascal是否自动“启动”;“修剪”;是函数输入参数的数组?,arrays,function,parameters,pascal,Arrays,Function,Parameters,Pascal,我正在开发一个Pascal-to-C端口,这两种语言在处理字符串方面的差异已经成为一个令人沮丧的问题 如果我声明一个大小为x的Pascal字符数组a,并将其作为输入参数传递给一个函数,该函数的输入参数定义为大小为x-z的字符数组B,其中z是一个正整数,那么Pascal一旦进入该函数后会做什么?数组A被截断,而B在函数内部被视为大小为x-z的数组吗 原始源代码的编写方式似乎表明它就是这样工作的,但我不熟悉Pascal 我不能发布代码,因为它是专有的,我也不太了解Pascal语法。然而,这将是一种大
x
的Pascal字符数组a
,并将其作为输入参数传递给一个函数,该函数的输入参数定义为大小为x-z的字符数组B,其中z是一个正整数,那么Pascal一旦进入该函数后会做什么?数组A被截断,而B在函数内部被视为大小为x-z的数组吗
原始源代码的编写方式似乎表明它就是这样工作的,但我不熟悉Pascal
我不能发布代码,因为它是专有的,我也不太了解Pascal语法。然而,这将是一种大致如下的情况:
type1 string[22]
type2 string[10]
//Function definition
function(type2 in)
//Do stuff to the array
print(in)
//Function call
type2 temp = "This is a string of 20"
function(inputString)
可能有语法错误
(* Types *)
type24 = packed array[1..24] of char;
type40 = packed array[1..40] of char;
(* Variable declaration *)
line : type40;
(* Function prototype *)
foo(var contents : type24) : boolean;
(* Function call *)
if ( foo(line) )
begin
end
请发布一些代码来解释你的问题(应该只有几行)。我不确定你到底在问什么。Pascal从不“修剪”数组,但如果没有代码,很难说它实际上做了什么;我不知道你从描述中看到了什么。我已经编辑了原始帖子,添加了一个伪代码示例。我的问题是,过程中的字符串“in”看起来像什么?您的“伪代码”不是实际的Pascal(它不会编译,因为函数声明错误,而且编译器不允许您将超过10个字符的字符串分配给
类型2
的变量)。请发布实际的可编译代码,说明您的要求。你现在发布的代码毫无意义-它不会编译,你创建了一个名为temp
的变量,但用inputstring
调用函数(顺便说一句,它也不能命名为函数
),但它也不能说明你试图解决的问题,因为它不是真正的伪代码。你问的是一个特定的语法类型问题,没有公布你所问的语法-除了“不,Pascal不修剪数组”之外,你希望如何得到一个答案?如果你在“处理Pascal到C端口”,并且你遇到了导致你问这个问题的问题,你应该有一些代表性的代码,你可以很快地匿名,并张贴,以说明问题。你为什么不发呢?