魔力宝贝单机存档谁有1.15c 1.16 1.20的存档?

  • C++程序的编辑、编译和运行

  • 类型检查机制相对较弱,使得程序中的一些错误不能在编译时由编译器检查出来。
  • C语言本身没有支持代码重用的语言结构
  • 不适合开发大型程序,当程序的规模达到一定的程度时,程序员很难控制程序的复杂性。

C++继承了C的优点,并有自己的特点,主要有:

1、全面兼容C,C的许多代码不经修改就可以为Cpp所用,用C编写的库函数和实用软件可以用于Cpp。

2、用C++编写的程序可读性更好,代码结构更为合理,可直接在程序中映射问题空间结构。

3、生成代码的质量高,运行效率高。

4、从开发时间、费用到形成软件的可重用性、可扩充性、可维护性和可靠性等方面有了很大提高,使得大中型的程序开发项目变得容易得多。

5、支持面向对象的机制,可方便的构造出模拟现实问题的实体和操作。

在运行时会在屏幕上输出以下一行信息:

  • 用main代表“主函数”的名字。每一个C++程序都必须有一个 main 函数。main前面的int的作用是声明函数的类型为整型。程序第6行的作用是向操作系统返回一个零值。如果程序不能正常执行,则会自动向操作系统返回一个非零值,一般为-1。
  • 函数体是由大括号{}括起来的。本例中主函数内只有一个以cout开头的语句。注意C++所有语句最后都应当有一个分号。
  • ”,这不是Cpp的语句,而是Cpp的一个预处理命令,它以“#”开头以与Cpp语句相区别,行的末尾没有分号。
  • #include <iostream>是一个“包含命令”,它的作用是将文件iostream的内容包含到该命令所在的程序文件中,代替该命令行。文件iostream的作用是向程序提供输入或输出时所需要的一些信息。
  • iostream是i-o-stream3个词的组合,从它的形式就可以知道它代表“输入输出流”的意思,由于这类文件都放在程序单元的开头,所以称为“头文件” (head file)。在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替#include命令行,然后再对该程序单元进行整体编译。
  • 程序的第2行“using namespace std;”的意思是“使用命名空间std”。Cpp标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到Cpp标准库(此时就需要用#include命令行),就需要用“using namespace std;”作声明,表示要用到命名空间std中的内容。
  • 在初学C++时,对本程序中的第1,2行可以不必深究,只需知道:如果程序有输入或输出时,必须使用“#include
  • ”命令以提供必要的信息,同时要用“using namespace std;”,使程序能够使用这些信息,否则程序编译时将出错。
例1.2 求a和b两个数之和
// 求两数之和 (本行是注释行)
 return 0; //如程序正常结束,向操作系统返回一个零值
 

本程序的作用是求两个整数a和b之和sum。

第1行“//求两数之和”是一个注释行,Cpp规定在一行中如果出现“//” ,则从它开始到本行末尾之间的全部内容都作为注释。

例1.3 给两个数x和y, 求两数中的大者
int z; //变量声明,定义本函数中用到的变量z为整型 return 0; //如程序正常结束,向操作系统返回一个零值

本程序包括两个函数:主函数main和被调用的函数max。

注意输入的两个数据间用一个或多个空格间隔,不能以逗号或其他符号间隔。

在上面的程序中,max函数出现在main函数之前,因此在main函数中调用max函数时,编译系统能识别max是已定义的函数名。如果把两个函数的位置对换一下,即先写main函数,后写max函数,这时在编译main函数遇到max时,编译系统无法知道max代表什么含义,因而无法编译,按出错处理。

为了解决这个问题,在主函数中需要对被调用函数作声明。上面的程序可以改写如下:

只要在被调用函数的首部的末尾加一个分号,就成为对该函数的函数声明。函数声明的位置应当在函数调用之前。

一个面向对象的C++程序一般由类的声明和类的使用两大部分组成。

类的使用部分一般由主函数及有关子函数组成。

在C++程序中,程序设计始终围绕“类”展开。通过声明类,构建了程序所要完成的功能,体现了面向对象程序设计的思想。

C++源程序文件的扩展名为.CPP

可以用多种编译器编辑、编译和运行

  • 注释符:“/*”和“*/” 或“//” 。

Cpp新增了注释语句,它由“//”开始,到行尾结束。

  • 续行符:“\”(反斜杠)。作用是当一个语句太长时可以用该符号把它分段写在几行中。 例:

C中I/O操作出现的问题:

Cpp中使用更安全更方便的方法:

cout和cin分别是C++的标准输出流和输入流。Cpp支持重定向,但一般cout指的是屏幕, cin指的是键盘。

操作符“<<”和“>>”除了具有C语言中定义的左移和右移的功能外,在这里符号“<<”是把右方的参数写到标准输出流cout中;相反,符号“>>”则是将标准输入流的数据赋给右方的变量。

例1.4 一个完整的C++程序
  • cin可以输入多个数据,但要用空白符隔开(tab,空格,回车)
  • 换行符:‘\n’或endl
  • 使用cout和cin时,也可以对输入和输出的格式进行控制,比如可用不同的进制方式显示数据,只要设置转换基数的操作符dec、hex和oct即可。

在程序中的不同位置采用不同的变量定义方式,决定了该变量具有不同的特点。变量的定义一般可有以下三种位置:

在函数体内部定义的变量称为局部变量,这种局部变量只在进入定义它的函数体时起作用,离开该函数体后该变量就消失(被释放),即不再起作用。因此,不同函数体内部可以定义相同名称的变量,而互不干扰。

当定义一个有参函数时,函数名后面括号内的变量,统称为形式参数。

在所有函数体外部定义的变量,其作用范围是整个程序,并在整个程序运行期间有效。

  • 在C语言中,全局变量声明必须在任何函数之前,局部变量必须集中在可执行语句之前。
  • Cpp中的变量声明非常灵活,它允许变量声明与可执行语句在程序中交替出现。

4、结构、联合和枚举名

在C++中,结构名、联合名、枚举名都是类型名。在定义变量时,不必在结构名、联合名或枚举名前冠以struct、union或enum。

在传统的C中,定义变量时,必须写成:

但是,在C++中,可以说明为:

C语言建议编程者为程序中的每一个函数建立原型,而Cpp要求为每一个函数建立原型,以说明函数的名称、参数类型与个数,以及函数返回值的类型。

其主要目的是让C++编译程序进行类型检查,即形参与实参的类型匹配检查,以及返回值是否与原型相符,以维护程序的正确性。

  • 函数原型语法的一般形式为:返回类型 函数名(参数表);
  • 函数原型是一条语句,它必须以分号结束。
例1.6 函数原型的说明

在程序中,要求一个函数的原型出现在该函数的调用语句之前。

  • 函数原型的参数表中可不包含参数的名字,而只包含它们的类型。例如:long Area(int ,int);
  • 函数定义由函数首部和函数体构成。函数首部和函数原型基本一样,但函数首部中的参数必须给出名字而且不包含结尾的分号。
  • Cpp的参数说明必须放在函数说明后的括号内,不可将函数参数说明放在函数首部和函数体之间。这种方法只在C中成立。
  • 主函数不必进行原型说明,因为它被看成自动说明原型的函数。
  • 原型说明中没有指定返回类型的函数(包括主函数main),Cpp默认该函数的返回类型是int
  • 如果一个函数没有返回值,则必须在函数原型中注明返回类型为void,主函数类似处理。
  • 如果函数原型中未注明参数,Cpp假定该函数的参数表为空(void)。

  • 在C中,习惯使用#define定义常量。

一般格式:const 数据类型标识符 常数名=常量值;

采用这种方式定义的常量是类型化的,它有地址,可以用指针指向这个值,但不能修改它。

1、const必须放在被修饰类型符和类型名前面

2、数据类型是一个可选项,用来指定常数值的数据类型,如果省略了该数据类型,那么编译程序认为它是 int 类型。

如:const int a=10; 表示定义了一个初始值为10的整型常量,它在程序中不可改变,但可用于表达式的计算中。

但实际的输出是:T2 is 2

如果用const取代了两个#define,就不会引起这个错误。

const可以与指针一起使用

  • (1)指向常量的指针:一个指向常量的指针变量。
  • (2)常指针:把指针本身,而不是它指向的对象声明为常量。

创建一个常指针,就是创建一个不能移动的固定指针,但是它所指的数据可以改变。例如:

  • (3)指向常量的常指针:这个指针本身不能改变,它所指向的值也不能改变。

要声明一个指向常量的常指针,二者都要声明为const。

这个语句的含义是:声明了一个名为pc的指针变量,它是一个指向字符型常量的常指针,用“abcd”的地址初始化该指针。

  • (2). 常量一旦被建立,在程序的任何地方都不能再更改。
  • (3). 与#define定义的常量有所不同,const定义的常量可以有自己的数据类型,这样C++的编译程序可以进行更加严格的类型检查,具有良好的编译时的检测性。
  • (4). 函数参数也可以用const说明,用于保证实参在该函数内部不被改动,大多数C++编译器能对具有const参数的函数进行更好的代码优化。

例如:通过函数i_Max求出整型数组a200中的最大值,函数原型应该是:int i_Max(const int* ptr); 这样做的目的是确保原数组的数据不被破坏,即在函数中对数组元素的操作只许读,而不许写。调用时的格式可以是:i_Max(a);

void 通常表示无值,但将void作为指针的类型时,它却表示不确定的类型。

这种void型指针是一种通用型指针,也就是说任何类型的指针值都可以赋给void类型的指针变量。

void型指针可以接受任何类型的指针的赋值,但对已获值的void型指针,对它在进行处理,如输出或传递指针值时,则必须进行强制类型转换,否则会出错。

调用函数时系统要付出一定的开销,用于信息入栈出栈和参数传递等。特别是对于那些函数体较小但调用又较频繁的函数,计算机的开销相对就比较可观。

在C语言中,用宏替换,可解决这个问题。例如,有如下的函数:

用宏替换时,上面的函数功能可写为:

宏替换实质上是文字替换。内联函数与一般函数不同的是,在进行程序的编译时,编译器将内联函数的目标代码作拷贝并将其插入到调用内联函数的地方。

例1.7 内联函数的使用

  • (1). 内联函数在第一次被调用前必须进行声明或定义,否则编译器将无法知道应该插入什么代码。
  • (2). C++的内联函数具有与C中的宏定义#define相同的作用和类似机理,但消除了#define的不安全性。
  • (3). 内联函数体内一般不能有循环语句和开关语句。
  • (4). 后面类结构中所有在类说明体内定义的函数都是内联函数。
  • (5). 通常较短的函数才定义为内联函数。

9、带有缺省参数值的函数

在C++中,函数的参数可以有缺省值。

当调用有缺省参数的函数时,如果相应的参数没有给出实参,则自动用相应的缺省参数值作为其实参。

函数的缺省参数,是在函数原型中给定的。

  • (2)在函数调用时,若某个参数省略,则其后的参数皆应省略而采用缺省值。 init (,20) 错误

(1) 什么是函数重载

函数重载是指一个函数可以和同一作用域中的其他函数具有相同的名字,但这些同名函数的参数类型、参数个数不同。如:

在本例中定义了两个名称都叫whatitis的函数,但它们的形参类型不同。因此,这两个函数就是重载函数。

在原有C语言中,每个函数必须有其唯一的名称,这样的缺点是所有具有相同功能、而只是函数参数不一样的函数,就必须用一个不同的名称.

而C++中采用了函数重载后,对于具有同一功能的函数,如果只是由于函数参数类型不一样,则可以定义相同名称的函数。

(3) 匹配重载函数的顺序

由于重载函数具有相同的函数名,在进行函数调用时,系统一般按照调用函数时的参数个数、类型和顺序来确定被调用的函数。

具体来说,按以下三个步骤的先后次序找到并调用那个函数:

  • (1)寻找一个严格的匹配,即:调用与实参的数据类型、个数完全相同的那个函数。
  • (2)通过内部转换寻求一个匹配,即:通过(1)的方法没有找到相匹配的函数时,则由C++系统对实参的数据类型进行内部转换,转换完毕后,如果有匹配的函数存在,则执行该函数。
  • (3)通过用户定义的转换寻求一个匹配,若能查出有唯一的一组转换,就调用那个函数。即:在函数调用处由程序员对实参进行强制类型转换,以此作为查找相匹配的函数的依据。
//因为系统能自动将char型转换成int型 //因为程序中将实参z强制转换为double型。

编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。

  • 重载函数间不能只是函数的返回值不同,应至少在形参的个数、参数类型或参数顺序上有所不同。 如:
// 这种重载是错误的
  • 应使所有的重载函数的功能相同。如果让重载函数完成不同的功能,会破坏程序的可读性。

建立一个通用函数,其函数类型和形参类型不具体指定,而是一个虚拟类型。

凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。

1) 在对程序进行编译时,遇到第13行调用函数max(i1,i2), 编译系统会将函数名max与模板max相匹配,将实参的类型取代了函数模板中的虚拟类型T。此时相当于已定义了一个函数,然后调用它。

2) 与重载函数比较:用函数模板比函数重载更方便,程序更简洁。但应注意它只适用于:函数的参数个数相同而类型不同,且函数体相同的情况。如果参数的个数不同,则不能用函数模板;

3) main函数不能定义为模板函数。

通常情况下,如果有两个同名变量,一个是全局的,另一个是局部的,那么局部变量在其作用域内具有较高的优先权。

下面的例子说明了这个问题。

如果希望在局部变量的作用域内使用同名的全局变量,可以在全局变量加上“::”,此时::avar代表全局变量avar

无名联合是C++中的一种特殊联合,可以声明一组无标记名共享同一段内存地址的数据项。如:

在此无名联合中,声明了变量i和f具有相同的存储地址。无名联合可通过使用其中数据项名字直接存取,例如可以直接使用上面的变量i或f,如:i=20;

在C中数据类型转换的一般形式:(数据类型标识符)表达式

C++支持这样的格式,还提供了一种更为方便的函数调用方法,即将类型名作为函数名使用,使得类型转换的执行看起来好像调用了一个函数。形式为:数据类型标识符 (表达式)

以上两种方法C++都接受,但推荐使用后一种方式。

作为对C语言中malloc和free的替换,C++引进了new和delete操作符。它们的功能是实现内存的动态分配和释放。

动态分配new的一般形式是:

  • 指针变量=new 数据类型;
  • 指针变量=new 数据类型(初始值);

释放由new操作动态分配的内存时,用delete操作。

它的一般形式是:delete 指针变量;

p=new int; // 动态分配一个存放int型数据的内存空间,并将首地址赋给p

与C的内存动态分配和释放操作(malloc和free)相比,C++提供的动态分配有以下优点

  • (1) new和delete 操作自动计算需要分配和释放类型的长度。这不但省去了用sizeof计算长度的步骤,更主要的是避免 了内存分配和释放时因长度出错带来的严重后果;
  • (2) new操作自动返回需分配类型的指针, 无需使用强制类型转换;
  • (3) new操作能初始化所分配的类型变量。
  • (4) new和delete都能可以被重载,允许建立自定义的内存管理法。

  • (1)用new分配的空间,使用结束后应该用delete显示的释放,否则这部分空间将不能回收而变成死空间。
  • (2)使用new动态分配内存时,如果没有足够的内存满足分配要求, new将返回空指针(NULL)。因此通常要对内存的动态分配是否成功进行检查。
    这时new为具有10个元素的整型数组分配了内存空间,并将首地址赋给了指针pi。 使用new为多维数组分配空间时,必须提供所有维的大小,
  • (4) 释放动态分配的数组存储区时,可使用delete运算符,其语法形式为:delete 指针变量; 无须指出空间的大小,但老版本的Cpp要求在delete的方括号中标出数字,以告诉Cpp要释放多少个元素所占的空间。例如:delete []pi; delete 10pi;
  • (5) new可在为简单变量分配内存空间的同时,进行初始化。这时的语法形式为:指针变量=new 类型名(初始值列表)
例 1.12 new为简单变量分配内存空间的同时,进行初始化
例 1.13 给数组分配内存空间的例子。

引用就是某一变量(目标)的一个别名,这样对引用的操作就是对目标的操作。

引用的声明方法: 类型标识符 &引用名=目标变量名;

  • (1) &在此不是求地址运算,而是起标识作用。
  • (2) 类型标识符是指目标变量的类型。
  • (3)声明引用时,必须同时对其进行初始化。
  • (4)引用声明完毕后,相当于目标变量名有两个名称。
  • (5)声明一个引用,不是新定义了一个变量,系统并不给引用分配存储单元。
例1.15 引用的使用
例1.16 使用引用可以简化程序

  • (1)引用名可以是任何合法的变量名。除了用作函数的参数或返回类型外,在声明时,必须立即对它进行初始化,不能声明完后再赋值。
  • (2)引用不能重新赋值,不能再把该引用名作为其他变量名的别名,任何对该引用的赋值就是该引用对应的目标变量名的赋值。对引用求地址,就是对目标变量求地址。
  • (3)由于指针变量也是变量,所以,可以声明一个指针变量的引用。方法是: 类型标识符 *&引用名=指针变量名;
int *&p=a; //定义引用p,初始化为指针变量a,所以p是a的引用(别名)
  • (4)引用是对某一变量或目标对象的引用,它本身不是一种数据类型,因此引用本身不占存储单元,这样,就不能声明引用的引用,也不能定义引用的指针。
  • (5)不能建立数组的引用,因为数组是一个由若干个元素所组成的集合,所以就无法建立一个数组的别名。
  • (6)不能建立空指针的引用
  • (7)也不能建立空类型void的引用,因为尽管在C++语言中有void数据类型,但没有任何一个变量或常量属于void类型。
  • (8) 尽管引用运算符与地址操作符使用相同的的符号,但时不一样的。引用仅在声明时带有引用运算符&,以后就像普通变量一样使用,不能再带&。其他场合使用的&都是地址操作符。
i=123; // 使用引用i,不带引用运算符

(3) 用引用作为函数的参数

一个函数的参数也可定义成引用的形式

在主调函数的调用点处,直接以变量作为实参进行调用即可,不需要实参变量有任何的特殊要求。

例1.17 采用指针参数的例子
例1.18 采用“引用参数”传递函数参数

(4) 用引用返回函数值

函数可以返回一个引用,将函数说明为返回一个引用的主要目的是:为了将函数用在赋值运算符的左边。

要以引用返回函数值,则函数定义时要按以下格式:

类型标识符 &函数名(形参列表及类型说明)

  • 以引用返回函数值,定义函数时需要在函数名前加&
  • 用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。
例1.19 返回引用的函数
例1.20 用引用返回函数的值
  • 在定义返回引用的函数时,注意不要返回该函数内的自动变量 (局部变量)的引用,由于自动变量的生存期仅限于函数内部,当函数返回时,自动变量就消失了。
  • 传递引用给函数与传递指针的效果是一样的,但使用更简练。
  • 使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;
p=*p1; //必须用“*指针变量名”的形式操作目标变量

由于函数的返回值是通过函数体中的return语句完成的,但一个return语句只能返回一个值,为此,我们可以采用以下方法:

  • (1)利用全局变量的方法:在函数中把所需数据保存在全局变量中。当被调函数执行完毕后在主调函数中直接读取全局变量的值即可。
  • (2)使用指针或数组的方法:指针作为函数参数的情况下,可将主调函数的某些变量的地址传递给被调函数。
  • (3)利用引用的方法:使用引用传递参数,可以在被调函数中改变主调函数中目标变量的值,这种方法实际上就是可以使被调函数返回多个值。
例 使用引用使函数返回多个值

以下定义了可以同时返回10个数中的最大值和最小值的函数max_min。

//不能从被调函数中返回一个临时变量或局部变量的引用 //可以从被调函数中返回一个全局变量的引用 //可以从被调函数中返回一个全局变量的引用

一个返回引用的函数值作为赋值表达式的左值

一般情况下,赋值表达式的左边只能是变量名,即被赋

值的对象必须是变量,只有变量才能被赋值,常量或表达式不能被赋值,但如果一个函数的返回值是引用时,赋值号的左边可以是该函数的调用。

例2-26 测试用返回引用的函数值作为赋值表达式的左值。

声明方式:const 类型标识符 &引用名=目标变量名;

用这种方式声明的引用,不能通过引用对目标变量的值进行修改,从而使引用的目标成为const,达到了引用的安全性。

  • (1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大对象的传递效率和空间不如意的问题。
  • (2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。
  • (3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作,程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

更多案例可以go公众号:C语言入门到精通

专利名称:姆替林的氨基甲酰氧基衍生物及其抗菌素用途的制作方法
本发明涉及新化合物,其制备方法,含有它们的药物组合物以及医疗特别是抗菌治疗的用途。
通式(1)化合物截短侧耳素是天然存在的抗菌素,它有抗支原体活性和一般抗菌活性。已表明在其14位置用R-X-CH2CO2-替代二醇酯部分就能改良抗微生物活性,其中R是脂族或芳族部分且X是O、S或NR’(见H Egger和H Reinshagen,抗菌素杂志,)。通式(2)化合物铁木林,一般用作兽药抗菌素,是这种类型的衍生物(G Hogenauer,见抗菌素,V卷,1部,F E 在本申请中,使用(G Hogenauer,loc.cit.)文献中通常使用的非常规计数体系。
我们发现,截短侧耳素类似物含有14-氧-氨基甲酰基也有改良的抗微生物活性。
因此,广义上讲,本发明提供一种姆替林(mutilin)或19,20-二氢姆替林地14-氧-氨基甲酰基衍生物,其中氨基甲酰基的N-原子是未取代、一取代或二取代的。
更具体地,本发明提供一种通式(3)的化合物
其中,R1是乙烯基或乙基;R2和R3是相同或不同的基团,选自
直链或支链,饱和或不饱和,任选取代的C1-C6烃基;
饱和或不饱和,任选取代的C3-C8环烃基;
或一起形成有3-8环原子的任选取代的环基,任选地含有一个选自N、O和S的另外的杂原子,和任选地稠合到烃环、杂环或芳上;或者
R2是上述单价基团之一且R3是一种选自SO2R4、COR5、OR5和NR6R7的基团,其中
R4选自直链或支链,饱和或不饱和,任选取代的C1-C6烃基;饱和或不饱和,任选取代的C3-C8环烃基;任选取代的杂环基;任选取代的芳基;任选取代的C1-C6烷基氨基;和任选取代的芳基氨基;
R5选自氢;直链或支链,饱和或不饱和,任选取代的C1-C6烃基;饱和或不饱和,任选取代的C3-C8环烃基;任选取代的杂环基;任选取代的芳基;
R6和R7是相同或不同的基团,选自氢;直链或支链,饱和或不饱和,任选取代的C1-C6烃基;饱和或不饱和,任选取代的C3-C8环烃基;任选取代的杂环基;任选取代的芳基;或一起形成有3-8环原子的任选取代的环基,任选地含有一个选自N、O和S的另外的杂原子,和任选地稠合到烃环、杂环或芳基上。
合适的C1-C6烃基包括含有1-6碳原子的直链或支链烷基,例如甲基,乙基,正丙基和异丙基,优选甲基。
合适的C3-C8环烃基包括环丙基,环戊基和环己基。
(C1-6)烷基和(C3-8)环烷基合适的任选取代基包括卤素,羟基,(C1-6)烷氧基,芳氧基,羧基及其盐,(C1-6)烷氧基羰基,氨基甲酰基,一-或二(C1-6)烷基氨基甲酰基,氨磺酰基,一-和二(C1-6)烷基氨磺酰基,氨基,一-和二取代(C1-6)烷氨基,(C1-6)酰氨基,脲基,(C1-6)烷氧羰基氨基,芳基,杂环基,氧桥,羟基亚氨基,酰基,(C1-6)烷硫基,芳硫基,(C1-6)链烷烃-亚磺酰基,芳基亚磺酰基,(C1-6)链烷磺酰基,芳基磺酰基。
本文所用术语“芳基”包括苯基和萘基。合适的芳基,包括苯基和萘基,任选地被最多五个、优选三个取代基取代。合适的取代基包括卤素,(C1-6)烷基,芳基(C1-4)烷基,(C1-6)烷氧基,(C1-6)烷氧基(C1-6)烷基,卤代(C1-6)烷基,羟基,硝基,氨基,一-和二-N-(C1-6)烷氨基,酰氨基,酰氧基,羧基,羧酸盐,羧酸酯,氨基甲酰基,一-和二-N-(C1-6)烷基氨基甲酰基,(C1-6)烷氧基羰基,芳氧基羰基,脲基,胍基,磺酰氨基,氨磺酰基,(C1-6)烷硫基,(C1-6)烷基亚磺酰基(C1-6)烷基磺酰基,杂环基和杂环(C1-4)烷基。另外,两个相邻的环碳原子可用(C3-5)亚烷基链连在一起成碳环。
本文所用术语“杂芳基”包括芳族单环和稠环且每个环最多有四个杂原子,选自O、N和S,环是未取代或者被最多三个取代基取代。每个杂芳环适宜有5或6个环原子。稠合的杂环包括碳环和必需包括唯一的杂环。
除非另有规定,本文所用术语“杂环”适宜包括芳族和非芳族、单环和稠环,每个环最多有四个杂原子,选自O、N和S,环是未取代或者被最多三个取代基取代。每个杂芳环适宜有4-7个、5-6个环原子。稠合的杂环包括碳环和必需包括唯一的杂环。
杂芳基或杂环基合适的取代基选自卤素,(C1-6)烷基,芳基(C1-4)烷基,(C1-6)烷氧基,(C1-6)烷氧基(C1-6)烷基,卤代(C1-6)烷基,羟基,硝基,氨基,一-和二-N-(C1-6)烷氨基,酰氨基,羧酸盐,羧酸酯,氨基甲酰基,一-和二-N-(C1-6)烷基羰基,芳氧基羰基,(C1-6)烷氧基羰基(C1-6)烷基,芳基,氧桥,脲基,胍基,磺酰氨基,氨磺酰基,(C1-6)烷硫基,(C1-6)烷基亚磺酰基,(C1-6)烷基磺酰基,杂环基和杂环(C1-4)烷基。
R2和R3特别合适的基团是氢,羟基,甲氧基,苯基,甲基,异丙基,苯基磺酰基,甲氧基苯基,硝基苯基,三氯乙酰基,苄基,羟基亚氨基苄基,苄氨基-磺酰基,二氯吡啶基,羟乙基,2-苯基乙基,1-(R)-苯基-2-羟乙基,2-(甲氧羰基)乙基,2-羧乙基,二甲氨基,二甲氨基丙基,甲磺酰氨基,甲磺酰基,苯甲酰氨基,任选地用以下基团取代的苯甲酰基三氟甲基,羧基,甲氧基,羟基,乙酸基,氨基或硝基,糠酰基,烟酰基,异烟酰基,乙酰基,苯乙酰基,和苯氧基。对环基R2R3N特别合适的基团是吲哚代和吗啉代。
本发明另一方面提供一种本发明化合物的制备方法,包括将通式(4)或(5)的化合物与合适取代的氨甲酸酯型试剂反应,通式(4)中的X是氢或带例如乙酰基保护基的羟基。
制备氨甲酸酯的一般方法已公开,例如见AF Hegarty文章,综合有机化学,2卷,IO Sutherland,Pergamon Press出版,1979,p.1083。一般步骤是与异氰酸酯或甲氨酰氯反应,或与光气或光气等效物反应随后与胺反应。
本发明特别涉及的一个方面是提供一种通式(3)化合物的制备方法,包括通式(4)化合物与以下化合物反应,通式(4)中X是氢或羟基的保护基,
(c)光气或氯代甲酸酯或碳酸酯随后与R2R3NH化合物反应,
其中R2和R3如上定义,并且被合适地保护,和必要时在11位置将X脱保护产生羟基,脱保护被护的R2和R3,将一个R2或R3基团转换成另一个R2或R3基团,或者氢化12位置的乙烯基形成乙基。
尽管原则上能够以公知姆替林化合物(通式(4)中X=H)通过在14-羟基的反应制备通式(3)化合物,实际上使用一种其中11-羟基被保护的中间体是合乎要求的。
本发明另一方面,提供一种通式(3)化合物的制备方法,将通式(5)化合物与以下化合物反应,
(c)光气或或氯代甲酸酯或碳酸酯随后与R2R3NH化合物反应。
其中R2和R3如上定义并且被合适地保护,用酸处理产物,脱保护被护的基团R2和R3,将一个R2或R3基团转换成另一个R2或R3基团,或者氢化12位的乙烯基形成乙基。
关于19,20-二氢类似物的制备(其中R1=乙基的通式(3)化合物),在甲氨酰化之前或之后通式(4)或(5)的化合物在溶剂中将其R1乙烯基用载钯催化剂(例如10%钯/碳)氢化还原,溶剂例如乙酸乙酯,乙醇,二噁烷或四氢呋喃。
如下在14位形成甲氨酸酯
(1)14-羟基与异氰酸酯(R2N=C=O)在惰性溶剂(例如二氯甲烷,三氯甲烷,四氢呋喃,乙醚,二噁烷)中的反应,任选地在一种有机或无机碱(例如N,N-二异丙基乙胺,碳酸钾)的存在下进行。这将在14位得到R2NHCO2-基团。制备异氰酸酯的方法已公开,例如见J March文辛“高级有机化学”1992第4版,Wiley,New York出版,p.1290。
(2)14-羟基与N,N-二取代氨基甲酰氯(R2R3NCOCl)在有机溶剂(例如二氯甲烷,三氯甲烷,四氢呋喃,乙醚,二噁烷)中在一种位阻叔碱(例如2,6-二甲基吡啶,N,N-二异丙基乙胺)存在下进行。这将在14位置得到R2R3NHCO2-基团。制备氨基甲酰氯的方法已公开,例如见A FHegarty,loc.cit,p.1088。
(3)14-羟基与光气或等效试剂(例如氯甲酸三氯甲酯,碳酸双(三氯甲酯))在一种有机碱(例如吡啶,2,6-二甲基吡啶,N,N-二异丙基乙胺)存在下反应,所得14-氯甲酸酯与伯胺或仲胺(R2NH2或R2R3NH)反应。
合适的羟基、羧基和氨基的保护基是本领域熟知的,它们可在常规条件下去除而并不断裂分子的其余部分。保护羟基、羧基和氨基方式和断裂所得被护衍生物方法的综述,例如见“有机化学中的保护基”(作者T.W.Greene,Wiley-Interscience,New York,1991,第二版)。特别合适的羟基保护基包括,例如三烷基甲硅烷基的三有机甲硅烷基类,和有机羰基以及有机氧羰基,如乙酰基,烯丙氧基羰基,4-甲氧基苄氧基羰基和4-硝基苄氧基羰基。特别合适的羧基保护基包括烷基和芳基,例如甲基,乙基和苯基。特别合适的氨基保护基包括烷氧基羰基,4-甲氧基苄氧基羰基和4-硝基苯氧基羰基。
在使用通式(4)中间体(例如X=乙酰基)情况下,在X基团脱保护的同时可方便地去除不稳定碱保护基。在使用通式(5)的中间体情况下,在化合物(5)转换成化合物(3)的同时可方便地去除不稳定酸的保护基。
本发明方法中形成的中间体化合物,例如通式(5)化合物的14-氯甲酸酯衍生物和14-氧-氨基甲酰基衍生物,这也是本发明的新颖部分。
本发明化合物可以是结晶或非结晶形式,如果结晶,任选地水合或溶剂合。当让本发明一些化合物从有机溶剂中结晶或再结晶时,结晶产物中可存在结晶溶剂。这种溶剂化物也在本发明范围内。同样,本发明一些化合物也可从含水溶剂中结晶或再结晶。在这种情况下,结晶产物中存在水合作用的水。化学计量水合物以及含有通过诸如冷冻干燥法产生的可变量水的化合物也在本发明范围内。
以基本纯的形式提供本发明化合物是合适的,例如纯度至少50%,合适的纯度至少60%,有益的纯度至少75%,优选纯度至少85%,更优选纯度至少95%,甚至纯度至少98%,所有百分比都以重量/重量计。不纯或纯度较低形式的本发明化合物,例如可用来制备适合药物用途的更纯形式的同样化合物或相关化合物(例如相应的衍生物)。
本发明还包括本发明化合物的可药用的盐或衍生物。当一个取代基带有酸性或碱性基团时就可形成盐。可通过常规方式的盐交换制备这种盐。
本发明化合物及其可药用的盐或衍生物具有抗微生物性质,并可用来处理动物特别是哺乳动物包括人类特别是人和家养动物(包括田间动物)的微生物感染。该化合物还可处理由例如革兰氏阳性和阴性细菌和支原体造成的感染,例如金黄色葡萄球菌属,粪肠球菌属,生浓链球菌属,无乳链球菌属,肺炎链球菌属,嗜血杆菌属种,萘瑟氏菌属种,军团菌属种,肺支原体和鸡败血支原体。
本发明提供一种药物组合物,包括通式(3)化合物或其可药用的盐或其衍生物以及与其一起的可药用的载体或赋性剂。
本发明还提供一种治疗动物、特别是人类或家养哺乳动物的微生物感染的方法,包括将通式(3)化合物或其可药用盐或其衍生物,或本发明的组合物给予待治的病人。
本发明还提供一种以医疗组合物制剂形式的本发明化合物或其可药用的盐或衍生物的用途,用于治疗微生物感染。
可将本发明化合物和组合物配制成方便给药的形式,用于人类或兽类医疗,从其它抗生素类推。
可以任何给药途径配制本发明化合物和组合物,例如口服、外用或经肠给药。例如可将组合物制成片剂,胶囊剂,粉剂,粒剂,锭剂,膏剂,糖浆,或液体制剂如溶液或悬浮液,亦即配制口服应用或经肠注射或注入的灭菌液形式。
片剂和胶囊剂的口服给药可以是单剂型,可含有的常规赋形剂,包括例如粘合剂如糖浆,阿拉伯胶,明胶,山梨醇,黄耆胶或聚乙烯基吡咯烷酮;填充剂如乳糖,蔗糖,玉米淀粉,磷酸钙,山梨醇或甘氨酸;压片润滑剂如硬脂酸镁,滑石,聚乙二醇或硅石;崩解剂如土豆淀粉;和可药用的湿润剂如月桂基硫酸钠。片剂可用常规药学实践的公知方法包衣。
口服液体制剂的形式为例如水性或油性悬浮液,溶液,乳液,糖浆或酏剂,或者以干粉制品存在、使用前用水或其他合适的载体复制。这种液体制品可含有常规添加剂,包括例如悬浮剂如山梨醇,甲基纤维素,葡萄糖糖浆,明胶,羟乙基纤维素,羧甲基纤维素,硬脂酸铝胶或氢化食用脂肪;乳化剂如卵磷脂,一油酸脱水山梨醇酯或阿拉伯胶;非水载体(可包括食用油)如杏仁油,油状酯(如甘油),丙二醇或乙醇;防腐剂如对羟基苯甲酸或山梨酸的甲酯或丙酯;并且如果需要还有常规矫味剂和着色剂。
本发明组合物打算外用的形式可以是例如软膏,膏剂,洗剂,眼膏,滴眼剂,滴耳剂,滴鼻剂,喷鼻剂,浸渍贴皮剂和气溶胶,并且可以含有合适的常规添加剂,包括例如防腐剂,辅助药物渗透的溶剂,和在软膏和膏剂中的润肤剂。这种外用制剂也可含有相容的常规载体如膏剂或软膏的基质,洗剂用的乙醇或油醇。这类载体可占组合物重量的约1%~98%,更通常约占组合物重量高达80%。
本发明组合物还可配制成栓剂,它含有常规栓剂基质如可可脂或其他甘油酯。
打算经肠给药的本发明组合物可以是方便的流体单剂型,利用化合物和灭菌载体优选水来制备。根据所用的载体和浓度,该化合物可悬浮或可溶于载体。制备溶液时,化合物溶于注射用水并且在装入合适的小瓶或安瓿瓶之前进行灭菌过滤,然后密封。包括例如局部麻醉剂、防腐剂和缓冲剂的常规添加剂优选溶于载体。为了增强溶液的稳定性,组合物可在填入小瓶后冷冻,并在真空下除水;然后所得干燥的冷冻粉末密封在小瓶内,而且可同时供应注射用水小瓶以在使用前复制液体。以基本同样的方式可制备非经肠给药的悬浮液,除了化合物不是溶解而是悬浮在载体中,而且灭菌不能通过过滤完成。相反化合物可以通过悬浮在灭菌载体之前在环氧乙烷中暴露而灭菌。为促使化合物均匀分布,这种悬浮液优选包括表面活性剂或湿润剂。
本发明化合物或组合物适合以抗菌有效量向病人给药。
根据给药方式,本发明组合物适合含有的本发明化合物量为0.1wt%(重量%),优选10-60wt%(基于组合物总重)。
适合向病人给药本发明组合物的日剂量为1.0-50mg/kg体重。对成年人(大约70kg体重),每天给药本发明组合物的量从50-3000mg,例如大约1500mg。成年人每天适合的剂量是5-20mg/kg。但是这些剂量可更高或更低一些,取决于正常的临床实践。
本发明组合物以单剂型存在时,每单剂型适合包括25-1000mg、优选50-500mg本发明化合物。
以下实施例进一步说明本发明。
实施例1.14-(N-苯基氨甲酸)姆替林
步骤1的产物(200mg)溶于二噁烷(2ml),冰浴冷却下缓慢加入浓盐酸(2ml)。室温搅拌清亮溶液3小时,用水稀释溶液并用碳酸氢钠碱化;用乙酸乙酯提取混合物,食盐水洗涤。硫酸镁干燥并蒸发得到粗产物;硅胶色谱纯化,用5%甲醇的氯仿溶液洗脱,得到白色泡沫状两种非对映体的标题化合物(135mg,69%);Rf0.08;υ最大(CHCl3)80,1735和1713cm-1;MS(+ve离子电喷)m/z501(22%,MH+),MS(-ve离子电喷)m/z499(100%,M-H-)。
1.一种通式(1A)的化合物或其可药用的盐或衍生物,
式中Y是氨基甲酰氧基,并且其中的N-原子是未取代或一取代或二取代的。
2.一种通式(3)的化合物或其可药用的盐或衍生物,
R2和R3是相同或不同的基团,选自
直链或支链,饱和或不饱和,任选取代的C1-C6烃基;
饱和或不饱和,任选取代的C3-C8环烃基;
或一起形成有3-8环原子的任选取代的环基,任选地含有一个选自N、O和S的另外的杂原子,和任选地稠合到烃环、杂环或芳上;或者
R2是上述单价基团之一且R3是一种选自SO2R4、COR5、OR5和NR6R7的基团,其中
R4选自直链或支链,饱和或不饱和,任选取代的C1-C6烃基;饱和或不饱和,任选取代的C3-C8环烃基;任选取代的杂环基;任选取代的芳基;任选取代的C1-C6烷基氨基;和任选取代的芳基氨基;
R5选自氢;直链或支链,饱和或不饱和,任选取代的C1-C6烃基;饱和或不饱和,任选取代的C3-C8环烃基;任选取代的杂环基;任选取代的芳基;
R6和R7是相同或不同的基团,选自氢;直链或支链,饱和或不饱和,任选取代的C1-C6烃基;饱和或不饱和,任选取代的C3-C8环烃基;任选取代的杂环基;任选取代的芳基;或一起形成有3-8环原子的任选取代的环基,任选地含有一个选自N、O和S的另外的杂原子,和任选地稠合到烃环、杂环或芳基上。
3.根据前述任一权利要求的化合物,基本如说明书任一实施例所述。
4.一种权利要求1化合物的制备方法,包括将通式(4)或(5)的化合物与合适取代的氨甲酸酯型试剂反应,
通式(4)中的X是氢或羟基的保护基。
5.一种权利要求2化合物的制备方法,包括将通式(4)化合物与以下化合物反应,通式(4)中X是氢或羟基的保护基,
(c)光气或氯代甲酸酯或碳酸酯随后与R2R3NH化合物反应,
其中R2和R3如上定义,并且被合适地保护,和必要时在11位置将X脱保护产生羟基,脱保护被护的R2和R3,将一个R2或R3基团转换成另一个R2或R3基团,或者氢化12位置的乙烯基形成乙基。
6.一种权利要求2化合物的制备方法,包括将通式(5)化合物与以下化合物反应,
(c)光气或或氯代甲酸酯或碳酸酯随后与R2R3NH化合物反应。
其中R2和R3如上定义并且被合适地保护,用酸处理产物,脱保护被护的基团R2和R3,将一个R2或R3基团转换成另一个R2或R3基团,或者氢化12位的乙烯基形成乙基。
7.一种药物组合物,包括权利要求1,2或3的化合物与一种可药用的载体或赋形剂。
8.一种治疗动物、特别是人类和家养动物微生物感染的方法,包括将抗微生物有效量的权利要求1、2或3的化合物或者权利要求7的组合物给药待治的病人。
9.权利要求1、2或3化合物在制备用于治疗细菌感染的药物组合物的应用。
通式(1A)的姆替林衍生物及其可药用的盐和衍生物治疗细菌感染的药物组合物的应用,其中R1是乙基或乙烯基,Y是氨基甲酰氧基,N-原子是未取代或者是一取代或二取代的。
发明者杰里米·D·欣克斯, 安德鲁·K·塔克尔, 埃里克·亨特 申请人:史密斯克莱·比奇曼公司

我要回帖

更多关于 我功夫特牛存档文件安卓 的文章

 

随机推荐