当前位置:  技术问答>linux和unix

C语言基础问题,参数定义在函数名后面,是为什么?

    来源: 互联网  发布时间:2016-11-10

    本文导语:  我看到有个函数的定义是这样写的, 从网上下载的源码, void LLcInit (context) LLC_CTX *context;               /* context */ {   context->count[0] = context->count[1] = 0;   /* Load magic initialization constants.    */   cont...

我看到有个函数的定义是这样写的, 从网上下载的源码,

void LLcInit (context)
LLC_CTX *context;               /* context */
{
  context->count[0] = context->count[1] = 0;

  /* Load magic initialization constants.
   */
  context->state[0] = 0x67442301;
  context->state[1] = 0xfdcdbb89;
  context->state[2] = 0x93bcdefe;
  context->state[3] = 0x19365f76;
}

这个函数在一个环境下编译没有问题,并且可以正常使用,但是在另外一个平台下编译时,就报错,说

variable or field 'LLcInit' declared void 
'context' was not declared in this scope
expected unqualified-id before '{' token

请问如何解决呢?我觉得这样写法,应该是没有问题的,但是不知道如何设置才能在另外一个平台上编译通过?比如修改哪个编译选项?
 

|
这种风格应该是K&R,不符合ANSI C标准

应该改为这样
void LLcInit (LLC_CTX *context)

或者试试用c89来编译呢

|
说白一点就是很古老的风格,现在不常见,只能在一些以前的项目代码或书籍中看到。现在一般都是像
void LLcInit (LLC_CTX *context)
这个形式。
一些编译器为了兼容NASI之前的代码,也会支持那种风格的。
2楼说得对,换个形式试试。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问大侠学java要有c语言基础吗?
  •  只有一点JAVA语言基础,但是想先看看关于软件工程方面的东西.可能吗?
  • 有了c语言基础,如何入手学习用c语言linux网络编程
  • 请介绍一两本精典的JSP书籍,我要去买了,已有JAVA语言基础!
  • 自己在家学那么3个月到半年UNIX下的网络编程,有C语言基础,出去后能找到这方面的事吗?
  • (基础)linux下c语言程序的编译问题
  • 看看您的c语言基础如何?链表问题
  • C 语言基础教程(我的C之旅开始了)[三]
  • C 语言基础教程(我的C之旅开始了)[五]
  • C语言基础知识点解析(extern,static,typedef,const)
  • SQL语言查询基础:连接查询 联合查询 代码
  • C 语言基础教程(我的C之旅开始了)[二]
  • C 语言基础教程(我的C之旅开始了)[十]
  • C语言嵌入informix基础入门示例讲解
  • C 语言基础教程(我的C之旅开始了)[四]
  • C 语言基础教程(一)颜色加亮
  • Oracle PL/SQL语言入门基础
  • C 语言基础教程(我的C之旅开始了)[九]
  • C 语言基础教程(我的C之旅开始了)[八]
  • C 语言基础教程(我的C之旅开始了)[六]


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3