| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 893 人关注过本帖
标题:验证2件事情:
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:20 回复次数:33 
验证2件事情:
都在同一个代码段验证了
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

void foo( int n )
{
    assert( n>0 && n<80 && n%2==1 );
    for( int i=0; i<n; ++i )
    {
        printf( "%*.*s\n", n-abs(i-n/2), n-2*abs(i-n/2), "*******************************************************************************" );
    }
}

int main()
{
    foo( 7 );
    foo( 79 );
    printf("ok\n");
    int j=0;
    return 0;
    int i=0;
}
第一个验证的是rjsp版主的输出*菱形块的 据说在vc6.0下无法编译,本人验证通过 ,可以编译运行
有图为证:
图片附件: 游客没有浏览图片的权限,请 登录注册

验证2、
据说vc6.0在printf语句后面无法申请新的变量,本人验证通过 可以任意地方申请变量。
搜索更多相关主题的帖子: color 
2012-12-20 18:22
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:10 
可以任意位置申请,就是不能用动态数组

小小战士,战士中的战斗机!
2012-12-20 18:33
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 
换成.c文件就不行,只能在开始申请


[fly]存在即是合理[/fly]
2012-12-20 18:46
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
还真是如此  rjsp的代码 换成c 也编译不了

那本次验证还是失败了

DO IT YOURSELF !
2012-12-20 19:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
历史版本

  Visual C++最初叫做Microsoft C/C++。

1、Visual C++ 1.0
  集成了MFC 2.0,是Visual C++第一代版本,1992年推出,可同时支援16位处理器与32位处理器版,可算是Microsoft C/C++ 7.0的更新版本。
2、Visual C++ 1.5
  集成了MFC 2.5,增加了“目标文件链接嵌入 (OLE)2.0 和支持MFC的开放式数据库链接(ODBC)。这个版本只有16位的,也是第一个以CD-ROM为软件载体的版本。这个版本也没有所谓“标准版”。它是最后一个支持16位软件编程的软件,也是第一个支持基于x86机器的32位编程软件。
3、Visual C++ 2.0
  集成了MFC 3.0,第一个只发行32位的版本。这个版本提前发行了,几乎成了一个“丢失的版本”。这是因为那个时候 Windows 95(开发代码为"Chicago")还没有发行,而Windows NT又只占有很小的市场份额。该版本用户可以通过微软公司的订阅服务(MicrosoftSubscription Service)升级至2.1和2.2版本。微软公司在这个版本中集成并升级了Visual C++1.5,作为2.0版本(Visual C++ 1.5升级后版本号:1.51)以及2.1版本(Visual C++1.5升级后版本号:1.52)的一部分。Visual C++ 2.x附带了16位和32位版本的CDK,同时支持Win32s的开发。Visual C++ 2.2及其后续版本不再升级Visual C++ 1.5(尽管它一直被集成至Visual C++ 4.x)。尽管出生的比Windows 95早,这个版本的发行日期还是非常接近Windows 95,可是当Windows 95发行时, Visual C++ 4.0也已经发行了。因此很多程序开发者直接从1.x过渡到4.0,把2.x跳过去了。
4、Visual C++ 4.0
  集成了MFC 4.0,这个版本是专门为Windows 95以及Windows NT设计的。用户可以通过微软公司的订阅服务(Microsoft Subscription Service)升级至4.1和4.2版本(此版本不再支持Win32s开发)。
5、Visual C++ 5.0
  集成了MFC 4.21,是4.2版以来比较大的一次升级。
6、Visual C++ 6.0
  集成了MFC6.0,于1998发行。发行至今一直被广泛地用于大大小小的项目开发。但是,这个版本在WindowsXP下运行会出现问题,尤其是在调试模式的情况下(例如:静态变量的值并不会显示)。 这个调试问题可以通过打一个叫“Visual C++ 6.0Processor Pack”的补丁来解决。奇怪的是,这个网页强调用户也必须运行Windows 98、Windows NT4.0、或Windows 2000。
7、Visual C++ .NET 2002
  也即Visual C++ 7.0,于2002年发行,集成了 MFC 7.0,支持链接时代码生成和调试执行时检查。这个版本还集成了Managed Extension for C++,以及一个全新的用户界面(与Visual Basic和Visual C#共用)。这也是为什么Visual C++ 6.0仍然被广泛使用的一个主要原因。
8、Visual C++ .NET 2003
  也即 Visual C++ 7.1,集成了MFC 7.1,于2003年发行,是对Visual C++ .NET 2002的一次重大升级。
9、eMbedded Visual C++
  用于Windows CE操作系统。Visual C++作为一个独立的开发环境被Microsoft Visual Studio 2005所替代。
10、Visual C++ 2005
  也即Visual C++ 8.0,集成了MFC 8.0,于2005年11月发布。这个版本引进了对C++/CLI语言和OpenMP的支持。
11、Visual C++ 2008
  也即Visual C++ 9.0,于2007年11月发布。这个版本支持.NET 3.5。
12、Visual C++ 2010
  Visual C++ 10.0,2009年发布,此版本更加稳定。VC++2010是目前最新稳定版本。
13、Visual C++ 2012
  Visual C++ 11.0, 2012年5月26日发布,支持.net4.5 beta,并实现go live。只能安装于win7或者更高的window操作系统。

授人以渔,不授人以鱼。
2012-12-20 19:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
http://blog.

  从MS Visual Studio开发小组的态度来看,近期之内,不会对C99进行完整的支持[7 ,8 ,9 ],这就意味着,可能在Windows下跑老外的Linux算法的时候涉及更多的代码改编。

授人以渔,不授人以鱼。
2012-12-20 19:46
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
7.8 我遇到一些 ``搞笑" 的代码, 包含 5["abcdef"]  这样的 ``表达式"。 这为什么是合法的 C 表达式呢 ?

是的, 弗吉尼亚7.1, 数组和下标在 C 语言中可以互换。这个奇怪的事实来自数组 下标的指针定义, 即对于任何两个表达式 a 和 e, 只要其中一个是 指针表达式而另一个为整数, 则 a[e] 和 *((a)+(e)) 完全一样。这种交换性 在许多 C 语言的书中被看作值得骄傲的东西, 但是它除了在混乱 C 语言竞赛 之外, 其实鲜有用武之地。

参考资料: [Rationale, Sec. 3.3.2.1]; [H&S, Sec. 5.4.1 p. 124, Sec. 7.4.1 pp. 186-7]。




--------------------------------------------------------------------------------

脚注
... 弗吉尼亚7.1这里有个美国典故, 在 1897 年, 有个叫 弗吉尼亚 (Virginia) 的八岁小女孩, 她对圣诞老人是否存在感到困惑, 因而写了封寻问信给《纽约太阳报》, 于是就有了 ``Yes, Virginia, there is a Santa Claus" 这篇评论, 有兴趣的朋友可以在  http://www.'s_question.htm 找到相关资料。

授人以渔,不授人以鱼。
2012-12-20 20:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
20.43 我不能使用这些非标准、依赖系统的函数, 程序需要兼容 ANSI!
你很不走运。要么你误解了要求, 要么这不可能做到。 ANSI/ISO C 标准 没有定义做这些事的方法; 它是个语言的标准, 不是操作系统的标准。 国际标准 POSIX (IEEE 1003.1, ISO/IEC 9945-1) 倒是定义了许多这方面 的方法, 而许多系统 (不只是 Unix) 都有兼容 POSIX 的编程接口。
可以做到, 也是可取的做法是使程序的大部分兼容 ANSI, 将依赖系统的功能 集中到少数的例程和文件中。这些例程或文件可以大量使用 #ifdef 或针对 每一个移植的系统重写。

授人以渔,不授人以鱼。
2012-12-20 20:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
20.4 怎样清屏?怎样输出彩色文本?怎样移动光标到指定位置?
这些功能跟你所用的终端类型 (或显示器) 有关。你需要使用 termcap, term-info 或 curses 类的函数库, 或者系统提供的特殊函数。 在 MS-DOS 系统下, 有两个函数可以使用 clrscr() 和 gotoxy()。
有一个不彻底的可移植的清屏方法: 输出卷纸字符  ('\f'), 可以清除一部分 的显示。还有个更加可移植的办法 (尽管很简陋), 输出足够多的换行 使当前屏幕清空。 最后一个方法: 使用 system() 函数 (参见问题 19.30) 来调用操作系统 的清屏指令。

参考资料 [PCS, Sec. 5.1.4 pp. 54-60, Sec. 5.1.5 pp. 60-62]。

授人以渔,不授人以鱼。
2012-12-20 20:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
21.11 什么是提高程序效率的最好方法?

选择好的算法, 小心地实现, 同时确定程序不做额外的事。例如, 即使世界上最优化的字符复制循环也比不上不用复制。

当担心效率时, 要保持几样事情在视野中, 这很重要。首先, 虽然效率 是个非常流行的话题, 它并不总是象人们想的那样重要。大多数程序的 大多数代码并不是时间紧要的。当代码不是时间紧要时, 通常把代码写 得清楚和可移植比达到最大效率更重要。记住, 电脑运行得非常 非常快, 那些看起来 ``低效率" 的代码, 也许可以编译得比较有效率, 而运行起来也没有明显的延时。

试图预知程序的 ``热点" 是个非常困难的事。当要关心效率时, 使用  profiling  软件来确定程序中需要得到关注的地方。通常, 实际计算时间都被外围 任务占用了 (例如 I/O 或内存的分配), 可以通过使用缓冲和超高速 缓存来提高速度。

即使对于时间紧要的代码, 最无效的优化技巧是忙乱于代码细节。 许多常被建议的 ``有效的代码技巧", 即使是很简单的编译器也会自动 完成 (例如, 用移位运算符代替二的幂次方乘)。非常多的手动优化 有可能是代码变得笨重而使效率反而低下了, 同时几乎不可移植。 例如, 也许可以在某台机器上提了速, 但在另一台机器上去变慢了。 任何情况下, 修整代码通常最多得到线性信能提高; 更好的算法可以 得到更好的回报。

有关效率的更多讨论, 以及当效率很重要时, 如何提高效率的建议, 可以从以下书中得到: Kernighan 和 Plauger 的 《The Elements of Programming Style》[K&P] 中的第七章, 和 Jon Bentley 的  《Writing Efficient Programs》[Bentley]。

授人以渔,不授人以鱼。
2012-12-20 21:07
快速回复:验证2件事情:
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018091 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved